ThinkPHP 如何实现系统登录日志?

1.数据库表

2.Controller控制器写一个记录日志的方法,可供其它地方调用,这样可以提高代码的复用性

/**

* //系统操作日志方法

* @param $log

* @param $userid

*/

publicfunctionUserLoginLog($log,$userid)

{

$logModel= M('Log');//实例化模型

$data=array(

'user_id'=>$userid,//用户ID

'op_log'=>$log,//操作内容

'op_time'=> time()//操作时间(当前系统时间)

);

$logModel->add($data);

}

3.在用户登录成功的时候调用UserLoginLog操作日志的方法

publicfunctionLogin()

{

if(IS_POST) {

$verify=new\Think\Verify();

if(!$verify->check(I('post.captcha'), 3)) {

$this->error('你输入的验证码有误!请重新输入');

}

if(D('User')->create(I('post.'), 4)) {

//调用UserModel的方法 (I()获取post提交的内容)

$userinfo= D('User')->checkLogin(I('post.username'), I('post.password'));

if($userinfo) {

session('username',$userinfo['username']);

session('user_id',$userinfo['user_id']);

//登录成功,写入日志

$this->UserLoginLog("登录系统", session('user_id'));

$this->redirect('Index/index');

}else{

$this->error('用户名或者密码错误!');

}

}else{

$this->error(D('User')->getError());

}

}

$this->display('Public/login');

}

4.在退出登录的时调用UserLoginLog操作日志的方法,最后就完成了

//退出

publicfunctionlogout()

{

$user_id=$_SESSION['user_id'];//用户ID

$this->UserLoginLog('退出系统',$user_id);

session(null);//清除session

$this->redirect('Login/Login');

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容