laravel框架實現(xiàn)后臺登錄、退出功能示例
本文實例講述了laravel框架實現(xiàn)后臺登錄、退出功能。分享給大家供大家參考,具體如下:
我們在寫后臺管理系統(tǒng)時,登錄,退出是避免不了的,那我們?nèi)绾问褂胠aravel實現(xiàn)呢?
首先,我們來看看登錄如何實現(xiàn)?
//登錄 public function logins(){ //post方式則為登錄操作 if(Request()->isMethod('post')){ $info = Request()->only('username','pwd');//過濾表單提交數(shù)據(jù),接受用戶名,密碼 $result = Admin::admin_login($info);//此處為調(diào)用模型,進(jìn)行驗證 //根據(jù)模型返回的結(jié)果,進(jìn)行判斷登錄狀態(tài) if($result['status']==200){ return redirect('index')->with('id',Session::get('userinfo')['uid']); }elseif($result['status']==205){ return redirect('login')->with('msg',$result['message']); }elseif($result['status']==203){ return redirect('login')->with('msg',$result['message']); }else{ return redirect('login'); } }elseif(Request()->isMethod('get')){//如果請求方式為get方式,說明為登錄頁面 return view('CloudAdmin/login'); } }
接下來,我們看模型的一些操作
//登錄操作判斷 public static function admin_login($info){ if(empty($info['username'])){ $result['status']=205; $result['message']="請輸入用戶名"; }else{ if(empty($info['pwd'])){ $result['status']=205; $result['message']='請輸入密碼'; }else{ $user = DB::table('sc_admin')->where('username',$info['username'])->first(); if(!$user){ $result['status']=202; $result['message']="用戶不存在"; }else{ if(md5($info['pwd'])!=$user->password){ $result['status']=203; $result['message']="密碼錯誤"; }else{ $userinfo = array('uid'=>$user->id,'username'=>$user->username); Session::put('userinfo',$userinfo);//登錄成功,存儲當(dāng)前登錄用戶的id和用戶名 //$time--將最后登錄時間以及登錄狀態(tài)進(jìn)行更新 $time = array('last_login'=>date('Y-m-d H:i:s'),'login_status'=>1); DB::table('sc_admin')->where('id',$user->id)->update($time); //保存服務(wù)器信息 $web = array( 'IP' => $_SERVER['REMOTE_ADDR'], 'login_time' => date('Y-m-d H:i:s',$_SERVER['REQUEST_TIME']), 'webserver' => $_SERVER['SERVER_SOFTWARE'], 'admin'=>Session::get('userinfo')['username'] ); //將服務(wù)器信息入庫 DB::table('sc_webinfo')->insert($web); $result['status']=200; $result['message']="登錄成功"; } } } } return $result; }
登錄成功之后,一切都是基于session存在的情況下操作的,如果session信息不存在,則會返回登錄界面;
再來看看退出操作:當(dāng)前點(diǎn)擊"退出"之后,我們應(yīng)該執(zhí)行那些操作?
//退出登錄,清除session,返回登錄頁面 public function login_out(){ //點(diǎn)擊退出,將此用戶的登錄狀態(tài)改變?yōu)槲吹卿? $array=array('login_status'=>0); DB::table('sc_admin')->where('id',Session::get('userinfo')['uid'])->update($array); //刪除session信息 Session::forget('userinfo'); return redirect('login'); }
這就是一個簡單的登錄,當(dāng)然,后臺登錄的管理,我們需要進(jìn)行判斷身份,在這里不多說
更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于Laravel框架的PHP程序設(shè)計有所幫助。
相關(guān)文章
ThinkPHP5查詢數(shù)據(jù)及處理結(jié)果的方法小結(jié)
這篇文章主要介紹了ThinkPHP5查詢數(shù)據(jù)及處理結(jié)果的方法,結(jié)合實例總結(jié)分析了thinkPHP5常見查詢語句及查詢數(shù)據(jù)庫的三種方式,需要的朋友可以參考下2017-11-11php+js實現(xiàn)圖片的上傳、裁剪、預(yù)覽、提交示例
首先用到的語言是php、插件imgareaselect附下載地址,沒有太多花哨的樣式,喜歡的朋友可以學(xué)習(xí)下2013-08-08淺談PHP攔截器之__set()與__get()的理解與使用方法
下面小編就為大家?guī)硪黄獪\談PHP攔截器之__set()與__get()的理解與使用方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10Laravel 5框架學(xué)習(xí)之向視圖傳送數(shù)據(jù)
本文向大家展示的是Laravel5框架學(xué)習(xí)系列的第三篇文章,給大家講解的是如何向視圖傳送數(shù)據(jù),從無到有,十分細(xì)致,有需要的小伙伴可以參考下。2015-04-04codeigniter自帶數(shù)據(jù)庫類使用方法說明
在 CodeIgniter 中,使用數(shù)據(jù)庫是非常頻繁的事情。你可以使用框架自帶的數(shù)據(jù)庫類,就能便捷地進(jìn)行數(shù)據(jù)庫操作2014-03-03Yii框架實現(xiàn)對數(shù)據(jù)庫的CURD操作示例
這篇文章主要介紹了Yii框架實現(xiàn)對數(shù)據(jù)庫的CURD操作,結(jié)合實例形式分析了Yii框架連接數(shù)據(jù)庫與CURD增刪改查等常見操作技巧,需要的朋友可以參考下2019-09-09