这里有新鲜出炉的PHP设计模式,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于web开发领域。PHP的文件后缀名为php。
这篇文章主要介绍了PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
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;
- }
来源: http://www.phperz.com/article/17/0830/342618.html