1.
2.
1
2
3
4
5
|
< 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.后台设置全局变量并查询用户信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
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判断用户是否已经登录(跳转到不同页面或者执行不同动作),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://www.cnblogs.com/yangzailu/archive/2016/09/22/5895775.html