1. 程式人生 > >[thinkPHP5專案實戰_23]管理員登入資訊展示、登出和登入狀態檢測

[thinkPHP5專案實戰_23]管理員登入資訊展示、登出和登入狀態檢測

1.管理員登入資訊展示和修改

登入成功後需要在頭部展示登入的管理員的名稱資訊,並且點選修改能跳轉到修改頁面進行操作

登入成功後,需要將使用者的資訊寫入伺服器的session中,從session中獲取使用者名稱和id

thinkPHP5的session使用方法:https://www.kancloud.cn/manual/thinkphp5/126166

在登入的model中成功後寫入session:

<?php 
namespace app\admin\model;

use think\Model;

class Login extends Model
{
	//登入資料處理函式
	//獲取控制器傳過來的登入名和密碼,根據登入名在資料庫中獲取密碼
	//若密碼一樣則給控制器返回1,若密碼存在但是不一樣返回2,或密碼不存在,返回3
	public function login($username,$password){
		$admin = \think\DB::name('admin')->where('username','=',$username)->find();
		if($admin){
			if($admin['password'] === md5($password)){
				//將登入id和名稱存入session
                \think\Session::set('id',$admin['id']);
                \think\Session::set('username',$admin['username']);
				return 1;
			}else{
				return 2;
			}
		}else{
			return 3;
		}
	}
}

?>

在頭部獲取session中對應的值展示出來;

點選修改跳轉到修改的控制器並將存在session中使用者存的值傳到對應控制器中

        <div id="navbar" class="navbar-collapse collapse">
            <ul class="nav navbar-nav navbar-right">
                <li><a href="#">管理員<?php echo session('username');?></a></li>
                <li><a href="{:url('Admin/edit',array('id'=>session('id')))}">修改密碼</a></li>
                <li><a href="{:url('Login/logout')}">退出</a></li>
            </ul>
        </div>

2.登出

點選登入,則清空使用者的session資訊,並跳轉到登入頁面

在登入控制器中新增登出操作方法:

    public function logout(){
        session(null);//退出清空session
        return $this->success('退出成功',url('login'));//跳轉到登入頁面
    }
}
3.登入狀態監測

使用者開啟等登出外的任何頁面都需要對使用者是否登入進行監測,因此每個頁面對應的控制器操作方法執行之前都要執行一次登入檢測

thinkPHP5提供了控制器初始化方法_initialize,在該控制器的方法呼叫之前首先執行https://www.kancloud.cn/manual/thinkphp5/118049

新建Basic控制器

<?php
namespace app\admin\controller;
use think\Controller;
class Basic extends Controller
{
    //定義控制器初始化方法_initialize,在該控制器的方法呼叫之前首先執行。
    public function _initialize()
    {
        if(!session('id')){
            return $this->error('請先登入系統',url('Login/login'));
        }
    }


}
然後將後臺模組中出登入控制器之外的所有控制器都繼承該控制器的操作方法

比如Admin控制器繼承

namespace app\admin\controller;
class Admin extends Basic

繼承了Basic控制器再的其他控制器無需引入think\Controller



相關推薦

[thinkPHP5專案實戰_23]管理員登入資訊展示登出登入狀態檢測

1.管理員登入資訊展示和修改 登入成功後需要在頭部展示登入的管理員的名稱資訊,並且點選修改能跳轉到修改頁面進行操作 登入成功後,需要將使用者的資訊寫入伺服器的session中,從session中獲取使用者名稱和id thinkPHP5的session使用方法:https:/

[thinkPHP5專案實戰_27]前臺文章內容展示

在文章列表下點選文章進入文章展示頁面; 本文介紹的文章展示頁面功能包括:文章內容(標題,時間,圖片,內容),文章點選數,上一篇下一篇功能。 文章的詳情資訊有Article控制器操作: <?php namespace app\index\controller; cla

SSH網上商城專案實戰19】訂單資訊的級聯入庫以及頁面的快取問題

           購物車這一塊還剩最後兩個問題,就是訂單資訊的級聯入庫和頁面快取,這裡的資訊是指購物車和購物項,即我們將購物車的資訊存入資料

[thinkPHP5專案實戰_29]前臺首頁文章搜尋功能完善

1. 首頁功能 首頁展示出所有文章,因此需要單獨處理,首先在後臺將首頁的欄目刪除,並將首頁欄目下的文章移到其他欄目或者刪除; 在頭部導航header.html單獨對首頁進行處理; <div class="blog-masthead"> <div class="c

[thinkPHP5專案實戰_30]留言板功能完善

實現的功能:開啟留言本頁面展示留言,並提供留言功能: 開啟application/index/controller/Guest.php控制器: Guest.php控制器程式碼 ********************Guest.php控制器程式碼片******************

[thinkPHP5專案實戰_31]結語GitHub原始碼下載地址

2018-5-7更新: 由於上傳程式碼失誤的原因,導致public/static目錄下丟失部分css和js程式碼,對於曾經參考或下載該原始碼的小夥伴們表示深深的歉意。但是過去了很久這部分丟失的程式碼沒有進行有效的儲存,所以再次使用該程式碼請慎重。 這部分的樣式主要參考bootstrap的官方

[thinkPHP5專案實戰_06]引入前臺頁面

一個網站的前端分一般分為前臺和後臺兩個部分,下面說明一下如何在tp5中引入前臺頁面。 tp5中訪問的是模組下的控制器,通過控制器獲取檢視下的頁面(模板佈局),輸出替換引導頁面載入靜態檔案(css,js,image) 1.前臺資源佈置 project 應用部署目錄 ├─a

[thinkPHP5專案實戰_20]友情連結功能完善

1.友情連結列表輸出及分頁 模板表單程式碼: <table class="table table-striped"> <thead> <tr&g

【C#專案實戰】學生社團資訊管理系統(MVC三層架構)

程式碼很多,就不再此貼出。 本來打算寫教程的,無奈沒有時間。 參考帖子:【C#】簡單三層架構(MVC)實現學生資訊管理 有視訊教程,完整程式碼,建議初學者先看這篇。 學生社團資訊管理系統功能介紹: 1.實現了對資料庫的增刪查改 2.影象資訊儲存在資料庫,支援修改。 3

[thinkPHP5專案實戰_28]前臺文章"相關文章"的功能完善

在文章詳情頁面需要展示相關文章列表,該列表使用過當前文章的關鍵詞來獲取的; 當前文章的關鍵詞可能不止一個,因此需要查詢所有文章是否具有該關鍵詞,如果有則將該文章相關資訊儲存到陣列中; 這樣遍歷出來文章可能重複,因為需要對該陣列中的文章進行去重; 去重的方法有很多,這裡使用對

THINKPHP5 專案實戰 之 模糊查詢

不管對於那個系統,查詢功能是必須存在的。所以掌握模糊查詢功能是必不可少的,下面我就根據具體專案介紹一下模糊查詢。上圖是專案的後臺的一個文章管理功能,可以看到可以根據分類,日期,還有文章的標題進行查詢,那麼這個功能到底怎麼實現呢?咱們一步一步來。首先,找到前端的HTML頁面,可

[thinkPHP5專案實戰_24]前臺頁面導航欄目呼叫

之前的前臺頁面的導航欄是通過a標籤實現跳轉的,但是在實際專案中欄目的資訊可能是動態變化的,因此展示的導航欄也會根據資料庫儲存的變化而變化; 通過後臺操作對導航欄的管理,實現前臺頁面的展示。 每次開啟前臺頁面都需要優先展示導航欄,需要建立初始化方法在其他頁面的控制器呼叫之前呼

安卓專案實戰之關於獲取SD卡指定路徑檔案的講解

前言 當我們將手機連線到電腦上時,我們發現在SD卡的根目錄下生成了成百上千的由各種應用程式建立的資料夾,導致我們也不知道哪個資料夾是用來幹嘛的,這正因為這樣安卓開發人員經常受到使用者的吐槽。 的確作為一個安卓開發者,我們的確不應該將我們應用的資料直接存到SD卡的根目錄下,這樣當手機安

5使用者模組介面開發——登入登出註冊

先看一下工程目錄 建立UserController類 在主方法上加上這兩個註釋: @Controller @RequestMapping("/user/") 如: 1、登入介面: Cont

django使用者註冊登入登出使用者擴充套件

使用者部分是一個網站的基本功能,django對這部分進行了很好的封裝,我們只需要在django的基礎上做些簡單的修改就可以達到我們想要的效果 首先我假設你對django的session、cookie和資料庫、admin部分都有一定的瞭解,不瞭解的可以參考這個教程:http:

Linux 配置 history 命令顯示操作時間使用者登入 IP

一、在配置檔案中(/etc/bashrc 或者 /etc/profile 或者~/.bash_profile 或者 ~/.bashrc)新增如下配置 HISTFILESIZE=4000

Vue.js——使用$.ajaxvue-resource實現OAuth的註冊登入登出API呼叫【6】

概述 上一篇我們介紹瞭如何使用vue resource處理HTTP請求,結合服務端的REST API,就能夠很容易地構建一個增刪查改應用。 這個應用始終遺留了一個問題,Web App在訪問REST API時,沒有經過任何認證,這使得服務端的REST API是不安全的,只要有人知道api地址,就可以呼叫AP

【SSH網上商城專案實戰18】過濾器實現購物登入功能的判斷

    轉自:https://blog.csdn.net/eson_15/article/details/51425010     上一節我們做完了購物車的基本操作,但是有個問題是:當用戶點選結算

小型專案SSM+Maven實戰講解:APP資訊管理平臺-developer版

APP管理平臺是一個小型專案,是一個CMS系統,最主要的就是對於SSM(Spring、SpringMVC、Mybatis)框架的整合和Maven的理解,以及GIT託管平臺的使用,另外和有一個BootStrap的使用,在這裡做寫這個心得主要是因為自身對於SSM框架的不熟練,以此來檢驗自己的大腦和開拓自

微信小程式專案實戰【二】-------實現授權登入

這節的內容主要根據專案中的功能模組做一個詳細的講解,專案結構圖如下 【授權登入效果圖展示】      點選授權登入切換到這個介面          【解析】 對於現在大多數小程式都需要一個授權登