PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
程序员文章站
2024-02-29 13:23:04
1.
2.
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; }
以上所述是小编给大家介绍的php判断用户是否已经登录(跳转到不同页面或者执行不同动作),希望对大家有所帮助
上一篇: java设计模式之工厂模式实例详解
下一篇: 在MySQL中操作克隆表的教程