1:判斷登錄
? public function main(){
//dump(session('admin_id'));die;
? ? ? if(!session('admin_id')){
? ? ? $this->success('未登錄',U('index/login'),2);
? ? ? }
? ? ? $this->display();
?
? ? }
?
?
?
? ??
? ? public function login(){
? ? ? //兩個(gè)邏輯:展示、收集
? ? ? if(!empty($_POST)){
? ? ? ? //校驗(yàn)驗(yàn)證碼
? ? ? ? $vry = new \Think\Verify();
? ? ? ? if($vry ->check($_POST['verify']))
? ? ? ? ? {
? ? ? ? ? ? ?//校驗(yàn)用戶名密碼
? ? ? ? ? ? ?//先根據(jù)用戶名查詢一遍,查看是否存在此用戶名,存在繼續(xù)走,不存在返回個(gè)提示,就此截止。以此增加安全性跟效率
? ? ? ? ? ? ?//然后獲取密碼,查看獲取的密碼md5后跟數(shù)據(jù)庫的密碼是否一致,
? ? ? ? ? ? ?//如果一樣則用戶名密碼驗(yàn)證通過,然后將用戶名name跟id存到session里面,以后頁面登錄操作,可以直接判斷有沒有session['admin_name']或者session['adminid'],來判斷用戶是否登錄,
? ? ? ? ? ? ?$username = I('post.username','');
?
? ? ? ? ? ? ?$firs=M('manager')->where("mg_name='$username'")->find();
? ? ? ? ? ? //echo $firs['mg_pwd'];die;
? ? ? ? ? ? // echo M('manager')->getLastsql();die;
? ? ? ? ? ? ?//print_r($firs);die;
? ? ? ? ? ? ?if(empty($firs)){
? ? ? ? ? ? ? $this->error('用戶不存在','/admin/home/empty/',3);
? ? ? ? ? ? ?}
?
? ? ? ? ? ? ?$passwd = I('post.pwd','');
?
? ? ? ? ? ? ?if($passwd == $firs['mg_pwd'])
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? //接下來就是session持久化用戶名跟id,然后頁面跳轉(zhuǎn),也就是將提交的用戶信息保存到admin_name,admin_id中去,此時(shí)session會(huì)自動(dòng)生成session_id(),其他頁面判斷時(shí)也可以用有無這個(gè)值進(jìn)行判斷,id是會(huì)不斷變化的
? ? ? ? ? ? ? ? session('admin_name',$info['mg_name']);//將mg_name存到session中
? ? ? ? ? ? ? ? session('admin_id',$info['id']);
? ? ? ? ? ? ? ? $this->redirect('main');
? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? echo "用戶名密碼錯(cuò)誤";
? ? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? ? else
? ? ? ? ? {
? ? ? ? ? echo "驗(yàn)證碼錯(cuò)誤:(";
? ? ? ? ? }
?
? ? ? ? ??
? ? ? ? ??
? ? ? }else{
? ? ? ? $this->display();
? ? ? }
$this->display();
?
? ? }
?
?
public function logout(){
? //退出系統(tǒng),清楚session就行
? session(null);
? $this->redirect('login');
}
?
?
?
public function verify(){
? ?$config = ? ?array( ??
? ? 'fontSize' ?=> 18, ? ?// 驗(yàn)證碼字體大小 ?
? ? 'length' ? => 4, ? ? // 驗(yàn)證碼位數(shù)?
? ? 'useNoise' => true, // 關(guān)閉驗(yàn)證碼雜點(diǎn)
? ? ? ? );
? $Verify = ? ? new \Think\Verify($config);
? $Verify->entry();
}
?
?
?
1:新建sessionpdcontrollar控制器用來判斷sessionid存不存在
<?php
namespace Home\Controller;
use Think\Controller;
class SessionpdController extends Controller {
function __construct (){//使用構(gòu)造函數(shù)自動(dòng)加載判斷session
parent::__construct();
if(!session('admin_name'))
{
$this->error('<span style="font-size:36px; color:#ff0000;">沒有登錄奧親:)!</span>',U('index/login'),2);
}else{
echo 'session _name='.session('admin_name');
}
}
?
}
2:將后臺(tái)頁面中頂部class ColumnController extends Controller 改為
class ColumnController extends SessionpdController
?
這樣在頁面加載時(shí)會(huì)自動(dòng)判斷session存不存在,進(jìn)行判斷用戶的登錄情況。
?
2:判斷session過期時(shí)間
login方法里加入?$_SESSION['dl_time']=time()+480;//設(shè)置session過期時(shí)間
if($passwd == $firs['mg_pwd'])
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? //接下來就是session持久化用戶名跟id,然后頁面跳轉(zhuǎn),也就是將提交的用戶信息保存到admin_name,admin_id中去,此時(shí)session會(huì)自動(dòng)生成session_id(),其他頁面判斷時(shí)也可以用有無這個(gè)值進(jìn)行判斷,id是會(huì)不斷變化的
? ? ? ? ? ? ? ? ? session('admin_name',$firs['mg_name']);//將mg_name存到session中
? ? ? ? ? ? ? ? ? session('admin_id',$firs['id']);
? ? ? ? ? ? ? ? ? $_SESSION['dl_time']=time()+480;//設(shè)置session過期時(shí)間
?
? ? ? ? ? ? ? ? ? $this->redirect('main');
? ? ? ? ? ? ? ? }
sessionpdcontrollar控制器里面修改
<?php
namespace Home\Controller;
use Think\Controller;
class SessionpdController extends Controller {
function __construct (){
parent::__construct();
//判斷用戶登錄情況開始
if(!session('admin_name'))
{
$this->error('<span style="font-size:36px; color:#ff0000;">沒有登錄奧親:)!</span>',U('index/login'),2);
}else{
//判斷用戶登錄情況完畢
?
//echo 'session _name='.session('admin_name');
//設(shè)置session過期時(shí)間
/* $_SESSION['dl_time']=time()+60;//設(shè)置session時(shí)間,當(dāng)前時(shí)間加上一分鐘}*/
if(isset($_SESSION['dl_time']))
{
?? ? if($_SESSION['dl_time']<time())
?? ? {
?? ? ? /* echo date('y-m-d h:i:s',time());
?? ? ? ?echo "<br>過期時(shí)間 =";
?? ? ? ?echo date('y-h-m h:i:s',$_SESSION['dl_time']);;*/
?? ? ? ? session(null);
?? $this->redirect('login');
?? ? }
}else
?
{
??? ?? ?$_SESSION['dl_time']=time()+60;
?? ? ? /*echo $_SESSION['dl_time'];
echo "<br>";
echo date('y-h-m h:i:s',$_SESSION['dl_time']);*/
}
//session時(shí)間設(shè)置完畢
?
}
}
?
}
?