国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php - TP5的登入驗(yàn)證問題
巴扎黑
巴扎黑 2017-05-25 15:08:19
0
5
1221

應(yīng)該屬於比較菜的一個問題,就是我在處理前後端的時候,需要判斷是否有session來決定使用者是否登入。

但是我透過文件看到的辦法只能自己在每個頁面都引入一次判斷,然後進(jìn)行其他操作,不過肯定有更簡單的辦法來處理這個事,自己實(shí)在是研究不出來了,請大神幫忙!

主要就是如何能一次設(shè)置,然後讓制定目錄下的頁面都判斷是否登錄,以便方便下一步的操作

巴扎黑
巴扎黑

全部回覆(5)
迷茫

第一種引用存?。簩⑺衧ession判斷驗(yàn)證寫在一個類別裡面。在每一個控制器裡建立前置控制器方法或初始化控制,在方法裡面直接引用session類別的登入驗(yàn)證方法。
第二種繼承:就是每個控制器都繼承session驗(yàn)證類,這樣每次存取控制器都繼承session所有類別與方法,在session類別設(shè)定初始化控制,作為session的登入驗(yàn)證

個人推薦第二種,因?yàn)椴恍枰诿總€控制器裡面初始化控制器,減少程式碼便於維護(hù)

世界只因有你

寫一個基類如Base.php,通過其_initialize來實(shí)現(xiàn),如:

<?php
namespace app\admin\controller;

use think\Controller;

class Base extends Controller{
    public function _initialize(){
        $uid = session('uid');
        if($uid == null){
            $this->rediect('Login/index','請先登錄后操作');
        }
    }
}

其中Login.php不能繼承Base.php,否則需要另外的特殊判斷,如:

<?php
namespace app\admin\controller;

use think\Controller;

class Login extends Controller{
    public function _initialize(){
        $uid = session('uid');
        if($uid != null){
            $this->rediect('Index/index','已登錄');
        }
    }
}
迷茫

我也是小白一枚,只是有個想法,可以在登入儲存session之後,在後端寫一個判斷session的公共方法,然後在需要目錄下面嗲用這個方法,這樣就不需要在每個目錄下面都去判斷了!

只是個人想法,沒有實(shí)踐?。?
Peter_Zhu

寫一個驗(yàn)證中間件(行為),然後在路由裡調(diào)用,可以任意指定哪些頁面需要調(diào)用這個驗(yàn)證的中間件.

可以看下手冊裡行為那一部分

給我你的懷抱

不用每個頁面引入判斷啊,你把所有的控制器繼承一個公共的控制器,在公共的控制器寫一次session判斷就可以了

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板