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');
}