ThinkPHP3.2.3如何实现系统登录日志?

来源:互联网 发布:希捷数据恢复要多少钱 编辑:程序博客网 时间:2024/06/06 03:32
1.数据库表
日志表
用户表

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)) {                //调用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操作日志的方法,最后就完成了

  //退出    public function logout()    {        $user_id = $_SESSION['user_id'];//用户ID        $this->UserLoginLog('退出系统', $user_id);        session(null);//清除session        $this->redirect('Login/Login');    }



原创粉丝点击