市场日志功能开发(WEB)

来源:互联网 发布:mysql source命令 编辑:程序博客网 时间:2024/04/29 14:50

市场日志功能开发(WEB)


html,js,jquery,php开发


​新需求: 用户,位置,操作类型,操作内容,时间

1.​那么,我们需要首先启动项目,关闭冲突的端口(vmware总是和我们的web容器端口冲突)​

​2.好了之后,我们检出代码。

 

​打开页面

 

​在按钮中如果操作了下列,我们就要带入提交后台了。

 

​好了,我们先确定需求。当我们点击按钮,触发事件,事件提交后台请求时,我们需要带入下列数据:用户,位置,操作类型,操作内容,时间

那么,我们来猜测一下,用户得从内存里面拿,session里面一般都会放用户的基本信息,获取当前登录用户。位置在点击时触发事件时菜单栏目,操作类型就是按钮定义类型。操作内容么无非就是发送请求的内容,时间就是给入   new  Date

这些是输入,输出源在mongodb里面,我们需要写一个公共的类来存入日志。

好的,一步一步来,首先我们要从前台发送请求过来时,把这些输入给拿到。

3.1.我们从账号管理开始,首先我们找到该页面:账号管理

 

​这么一搜应有尽有,从html到js表单提交,再到management_users.php接受请求分发给别的逻辑处理层,都在这里,我们从页面开始看,然后确定这5个输出,拼接字符串的方式往后台送吧。

 

​账号管理,菜单id为menu_0_1

 

对应的意义就是左侧的导航栏

 

​当账号管理被点击的时候,我们可以看到,确实向后台发送了请求,不要急,接着看js,发送请求。

这里我们解释一下e.preventDefault()

 event.preventDefault()  该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。 

好的,接着往下,ajax_href_0_1();

接着就去看看这个方法,应该是发送ajax请求。

 

​这个ajax请求其实就是去打开页面的,不用过多的研究。继续走就好了。追进去这个php。

 

​可以看到哪个用户已经进入我们的眼帘了,拿到用户信息,接着跳转到了management_users.html页面去看看。

 

​需要注意的点是,这里从刚才的php里面把用户和角色信息拿到了,并且,我们可以看到,这里有一个比较重要的js文件,稍后的事件触发应该全部在这里面了,发送了ajax请求。别急,这个html接着往下看。

 

​这三个确定的id要记住了,分别对应的增删改确定id,稍后我们都要记录。

好了,到目前为止,我们可能已经拿到了用户信息,角色信息,关于页面的信息,我们稍后要改造,从页面一步一步带过来也行的。接着看这个js吧。

 

​我们距离发送最后的请求越来越近了,我们在这个js里面,用刚才的增加按钮里面的确定,来查找对应的ajax事件。id = sure_add

 

​好的,这个确定按钮做的事情都在这里了。进入开发环节,我在这里直接解释开发的代码和展示调试结果了。

1.js拿到当前所在菜单栏目。

 

​这里我们拿到当前菜单的名称,然后发送ajax传送到后台。

2.向php中拼接将来所要打进的日志库(这里我们用的3.48的测试日志库)

 

​在后台这里,我们汇总了很多字段信息,以准备将来插入数据库大致字段意思,用户名、菜单栏目、操作类型、操作的内容、客户端ip地址、以及操作返回的结果。 就是日志记录方法

logToDatabases($username,$menuString,$operate_id,$operate_context,$ip,$operate_status);

在记录日志之前,我们做了这个操作:

$operate_status= $EditTableData->add_data($code, $name, $pwd, $group_code, $group_name, $cm);

add操作被我们增加了返回值,所以我们把代码变成这样:

 

​我们将返回值返回进入日志,后期可以看。那么,关于$EditTableData->add_data()方法修改

3.$EditTableData->add_data()修改:

 

​从这张图片可以和del_data对比一下,我们将$users->insert($insert_array);嵌套一层返回值,返回出去,让刚才的新增数据方法接受,然后我们当做参数,记入日志。

4.记入日志方法

为什么不写类?因为php创建类的资源要远大于创建方法,所以我们使用方法。而且我们写到通用方法里面,common.php

 

​那,我们在这里将参数全部传入,新建一个时间戳,创建连接,然后创建数据数组之后,全部插入。如果不存在会重新新建,如果存在会直接使用

当然这些代码存在调优,就是java中说的,连接池,mongoPool,不可能每次我都来创建一次连接的,这些调优我们会在后期加上。现在我们调试。

5.调试出结果。

点击菜单栏目:

 

​添加测试数据,点击确定。

 

​这个时候,注意这个php入口,点进去看。

 

​请注意,数据已经插入。

 

​我们要去mongo里面看日志了。

因为代码里面我们

 

使用了库:z_operate_log

使用了用户:logs

所以,我们用xshell进入mongo的客户端。192.168.3.48上面。

./cd_mongo_report.sh 

 

如果需要删除库:进入到库里面(use 库名)之后db.dropDatabase();​

show dbs;

use z_operate_log;

show tables;

db.logs.find()

 

这条日志就是我们刚才新增用户时,存进来的日志,和前面php插入的数据对应。​

有关于mongo的api和php数据库连接操作可以看文档:

http://blog.csdn.net/qq_33792843/article/details/76573661

http://blog.csdn.net/qq_33792843/article/details/76551991

掌握了思想,开发就是这么简单。​


原创粉丝点击