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