1.數(shù)據(jù)庫表


2.Controller控制器寫一個記錄日志的方法,可供其它地方調(diào)用,這樣可以提高代碼的復(fù)用性
/**
*?//系統(tǒng)操作日志方法
*?@param?$log
*?@param?$userid
*/
publicfunctionUserLoginLog($log,$userid)
{
$logModel=?M('Log');//實例化模型
$data=array(
'user_id'=>$userid,//用戶ID
'op_log'=>$log,//操作內(nèi)容
'op_time'=>?time()//操作時間(當(dāng)前系統(tǒng)時間)
);
$logModel->add($data);
}
3.在用戶登錄成功的時候調(diào)用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))?{
//調(diào)用UserModel的方法?(I()獲取post提交的內(nèi)容)
$userinfo=?D('User')->checkLogin(I('post.username'),?I('post.password'));
if($userinfo)?{
session('username',$userinfo['username']);
session('user_id',$userinfo['user_id']);
//登錄成功,寫入日志
$this->UserLoginLog("登錄系統(tǒng)",?session('user_id'));
$this->redirect('Index/index');
}else{
$this->error('用戶名或者密碼錯誤!');
}
}else{
$this->error(D('User')->getError());
}
}
$this->display('Public/login');
}
4.在退出登錄的時調(diào)用UserLoginLog操作日志的方法,最后就完成了
//退出
publicfunctionlogout()
{
$user_id=$_SESSION['user_id'];//用戶ID
$this->UserLoginLog('退出系統(tǒng)',$user_id);
session(null);//清除session
$this->redirect('Login/Login');
}