用戶登錄注銷功能


1:判斷登錄

  public function main(){

//dump(session('admin_id'));die;

      if(!session('admin_id')){

      $this->success('未登錄',U('index/login'),2);

      }

      $this->display();

 

    }

 

 

 

    

    public function login(){

      //兩個邏輯:展示、收集

      if(!empty($_POST)){

        //校驗驗證碼

        $vry = new \Think\Verify();

        if($vry ->check($_POST['verify']))

          {

             //校驗用戶名密碼

             //先根據用戶名查詢一遍,查看是否存在此用戶名,存在繼續走,不存在返回個提示,就此截止。以此增加安全性跟效率

             //然后獲取密碼,查看獲取的密碼md5后跟數據庫的密碼是否一致,

             //如果一樣則用戶名密碼驗證通過,然后將用戶名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,然后頁面跳轉,也就是將提交的用戶信息保存到admin_name,admin_id中去,此時session會自動生成session_id(),其他頁面判斷時也可以用有無這個值進行判斷,id是會不斷變化的

                session('admin_name',$info['mg_name']);//將mg_name存到session中

                session('admin_id',$info['id']);

                $this->redirect('main');

                }else{

                echo "用戶名密碼錯誤";

              }

          }

          else

          {

          echo "驗證碼錯誤:(";

          }

 

          

          

      }else{

        $this->display();

      }

$this->display();

 

    }

 

 

public function logout(){

  //退出系統,清楚session就行

  session(null);

  $this->redirect('login');

}

 

 

 

public function verify(){

   $config =    array(   

    'fontSize'  => 18,    // 驗證碼字體大小  

    'length'   => 4,     // 驗證碼位數 

    'useNoise' => true, // 關閉驗證碼雜點

        );

  $Verify =     new \Think\Verify($config);

  $Verify->entry();

}

 

 

 

增強安全性,tyteam.com/admin/Home/Saylist/add/直接打開這個地址如果沒有session判斷,則用戶也能進行增刪改差,如果加了session判斷,則必須進行登錄才可以操作。

1:新建sessionpdcontrollar控制器用來判斷sessionid存不存在

<?php

namespace Home\Controller;

use Think\Controller;

class SessionpdController extends Controller {

function __construct (){//使用構造函數自動加載判斷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:將后台頁面中頂部class ColumnController extends Controller 改為

class ColumnController extends SessionpdController

 

這樣在頁面加載時會自動判斷session存不存在,進行判斷用戶的登錄情況。

 

2:判斷session過期時間

login方法里加入 $_SESSION['dl_time']=time()+480;//設置session過期時間

if($passwd == $firs['mg_pwd'])

               {

                //接下來就是session持久化用戶名跟id,然后頁面跳轉,也就是將提交的用戶信息保存到admin_name,admin_id中去,此時session會自動生成session_id(),其他頁面判斷時也可以用有無這個值進行判斷,id是會不斷變化的

                  session('admin_name',$firs['mg_name']);//將mg_name存到session中

                  session('admin_id',$firs['id']);

                  $_SESSION['dl_time']=time()+480;//設置session過期時間

 

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

//設置session過期時間

/* $_SESSION['dl_time']=time()+60;//設置session時間,當前時間加上一分鍾}*/

if(isset($_SESSION['dl_time']))

{

     if($_SESSION['dl_time']<time())

     {

       /* echo date('y-m-d h:i:s',time());

        echo "<br>過期時間 =";

        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時間設置完畢

 

}

}

 

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM