91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • thinkphp5框架中如何實現登陸、登出及session登陸狀態檢測功能

thinkphp5框架中如何實現登陸、登出及session登陸狀態檢測功能

發布時間:2021-06-06 13:42:33 來源:億速云 閱讀:511 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關thinkphp5框架中如何實現登陸、登出及session登陸狀態檢測功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

本文實例講述了thinkphp 5框架實現登陸,登出及session登陸狀態檢測功能。分享給大家供大家參考,具體如下:

1,訪問http://localhost/tp5/admin.php時,判斷有沒有登陸:

想法:寫一個父類,繼承controller,然后定義一個初始化方法,在控制器調用時就判斷是否登陸

<?php
namespace app\Admin\controller;
use think\Controller;
use think\Session;
class Basic extends Controller
{
  //如果你的控制器類繼承了\think\Controller類的話,可以定義控制器初始化方法_initialize,在該控制器的方法調用之前首先執行。
  public function _initialize()
  {
    //判斷有無admin_username這個session,如果沒有,跳轉到登陸界面
    if(!session('admin_username')){
      return $this->error('您沒有登陸',url('Login/login'));
    }
  }
}

登陸界面:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <h2>登陸</h2>
  <div>
    <form class="m-t" role="form" action="{url('Login/login')}" method="post">
      <div class="input-field">
        <input id="admin_username" type="text" name="admin_username" class=" validate" placeholder="請輸入用戶名" required>
        <label for="admin_username">用戶名</label>
      </div>
      <div class="input-field">
        <input id="admin_password" type="password" name="admin_password" placeholder="請輸入密碼" class="validate" required>
        <label for="admin_password">密碼</label>
      </div>
      <button type="submit" class="waves-effect red lighten-1 waves-light btn full-width " >登 錄</button>
    </form>
  </div>
</body>
</html>

thinkphp5框架中如何實現登陸、登出及session登陸狀態檢測功能

登陸控制器:

<?php
namespace app\Admin\controller;
use think\Controller;
use think\Session;
use think\Request;
use think\Db;
class Login extends Controller{
  public function login(){
//判斷是否是post方法發送的數據:如果是則開始登陸
    if (Request::instance()->isPost()){
      $admin_username = input('post.admin_username');//接收前臺用戶名
      $admin_password = input('post.admin_password');//接收前臺密碼
      if(empty($admin_username) || empty($admin_password)){
        $this->error("用戶名或者密碼不能為空!");
      }
      //從數據庫讀取數據
      $admin_info = DB::name('admin')
      ->where('admin_username',$admin_username)
      ->find();
      if(empty($admin_info)){
        $this->error('用戶不存在,請重新登陸',url('Login/login'));
      }else{
        if(md5($admin_password)!=$admin_info['admin_password']){
          $this->error('密碼不正確,請重新登陸',url('Login/login'));
        }else{
          Session::set('admin_username',$admin_username);
          $this->success("登錄成功!",url('Index/index'));
        }
      }
    }else{//如果不是post,則返回登陸界面
      return view('login');
    }
  }
  public function logout(){
    session(null);//退出清空session
    return $this->success('退出成功',url('Login/login'));//跳轉到登錄頁面
  }
}

thinkphp5框架中如何實現登陸、登出及session登陸狀態檢測功能

如果失敗,回到登陸頁面;如果登陸成功,跳轉到后臺首頁:

<?php
namespace app\Admin\controller;
use think\Controller;
use think\Session;
use think\View;
//后臺首頁繼承自登陸判斷頁面,每次加載都會先執行判斷頁面的代碼
class Index extends Basic
{
  public function index()
  {
    $view = new View();
    $data = session('admin_username');
    $view->assign('data',$data);
    //return view('index');
    return $view->fetch('index');
  }
}

后臺首頁面:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <!-- <h2>hello,{$Think.session.admin_username}</h2> -->
  <h2>hello,{$data}</h2>
  <a href="{:url('Login/logout')}" rel="external nofollow" >退出登陸</a>
</body>
</html>

關于“thinkphp5框架中如何實現登陸、登出及session登陸狀態檢測功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通榆县| 盐亭县| 莲花县| 洛南县| 若尔盖县| 房山区| 天镇县| 道孚县| 镇江市| 萨嘎县| 龙川县| 台东县| 辽源市| 丰城市| 沾化县| 忻城县| 偏关县| 枣庄市| 饶平县| 墨脱县| 綦江县| 金沙县| 双牌县| 辉南县| 布尔津县| 闽侯县| 勃利县| 革吉县| 中江县| 兰西县| 托克逊县| 海晏县| 桂林市| 金山区| 陕西省| 丹阳市| 鹤庆县| 涡阳县| 峨眉山市| 乐都县| 河北区|