企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# ThinkPHP3.2.3如何实现系统登录日志? 1.数据库表,新建两个表 ![日志表](https://box.kancloud.cn/6389b2b9d0e9f300eefd3c45d9fe2db6_703x189.png =680x180) ![用户表](https://box.kancloud.cn/3582c1395648714649e2b8555327716a_708x204.png =600x180) 2.Controller控制器写一个记录日志的方法,可供其它地方调用,这样可以提高代码的复用性 ~~~ /** * //系统操作日志方法 * @param $log * @param $userid */ public function UserLoginLog($log, $userid) { $logModel = M('Log'); //实例化模型 $data = array( 'user_id' => $userid, //用户ID 'op_log' => $log, //操作内容 'op_time' => time() //操作时间(当前系统时间) ); $logModel->add($data); } ~~~ 3.在用户登录成功的时候调用UserLoginLog操作日志的方法,这样就完成了 ~~~ //登录操作 public function Login() { if (IS_POST) { $verify = new \Think\Verify(); if (!$verify->check(I('post.captcha'), 3)) { $this->error('你输入的验证码有误!请重新输入'); } if (D('User')->create(I('post.'), 4)) { $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'); } ~~~