判斷用戶是否已經登錄(跳轉到不同頁面或者執行不同動作)


1.

2.

   <if condition="$GLOBALS['userinfo']['user_id'] gt 0">
        <span class="help_wz"><a href="{$Think.config.VIP_URL}/Member/user_pwd/" style="color:#404958;">找回登錄密碼</a></span>
        <else/>
        <span class="help_wz"><a href="/Login/FindPwd" style="color:#404958;">找回登錄密碼</a></span>
        </if>

 

3.后台設置全局變量並查詢用戶信息

    public function UserInfo($user_id){
        //查詢系統信息
        $system=array(
                'CmdId'=>'System',
                'Token'=>'wap',
                'PostDetails'=>json_encode(array(
                )));
        //通過curl的post方式發送接口請求
        $curl=new CurlController();
        $strs=$curl->SendCurl($system);
        $GLOBALS['system']=$strs['AcctDetails'];
        if(empty($user_id)){
            return false;
        }
        setcookie("login_uid", $user_id, time() + 3600, "/", C('cookie_url'));
        setcookie("rdun", $this->authcode($user_id . "," . time(), "ENCODE"), time() + 3600,"/",C('cookie_url'));;
        $data=array(
                'CmdId'=>'Individual',
                'Token'=>session('token'),
                'PostDetails'=>json_encode(array(
                        'user_id'=>$user_id,
                )));
        //通過curl的post方式發送接口請求
        $curl=new CurlController();
        $str=$curl->SendCurl($data);
        
        $GLOBALS['userinfo']=$str['AcctDetails'];
        $newtoken=unserialize($str['AcctDetails']['token']);
        $oldtoken=unserialize(session('token'));
        if(!empty(session('token')) && !empty($str['AcctDetails']['token'])){
            //用戶不對
            if($newtoken['user_id'] !== $newtoken['user_id']){
                session('token',null);
                session('user_id',null);
                header('Location:/Login/Login');
                return false;
            }
            //token不對
            if($newtoken['time'] !== $oldtoken['time']){
                session('token',null);
                session('user_id',null);
                header('Location:/Login/Login');
                return false;
            }
            //超時的不能在這做,原因是存入session的值不變,如果用戶一直操作的話,而且只登陸一次,那么就會出現問題
        }
        return true;
    }

 4.后台調用該方法


免責聲明!

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



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