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