PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)

2022-10-22,,,,

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判断用户是否已经登录(跳转到不同页面或者执行不同动作),希望对大家有所帮助

《PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作).doc》

下载本文的Word格式文档,以方便收藏与打印。