ThinkPHP 如何實現(xiàn)系統(tǒng)登錄日志?

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

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容