php - TP3.2 用户登录的时效问题
天蓬老师
天蓬老师 2017-06-15 09:22:30
0
1
1069

用tp3.2做后台管理,在做用户登录时遇到一个问题.
1.后台用户登录之后,一直有效,放了一中午,关掉浏览器,用户登录状态一直存在,只有点击注销时才能实现用户的过期.
不是php的session有效期默认是1440秒(24分钟),如果客户端超过24分钟没有刷新,当前session会被回收,失效吗,为啥一直都有效了?

2.用tp怎么实现用户登录的时效性问题:用户不操作的时候,固定时间后自动时效.怎么实现了.
我的登录部分的代码:

if(IS_POST){ $uname=I('post.uname'); $password=md5(I('post.password')); $res=M('manager')->where("uname='{$uname}'")->find(); if(is_null($res)) { $this->error("用户名不存在"); return false; } if($res['uname']==$uname&&$res['password']==$password){ $_SESSION['uname']=$res['uname']; $_SESSION['expire']=time()+600; $this->success('登录成功',U('Rbac/Index/index')); exit(); } $this->error("登录失败"); }

我百度看的思路是利用$_Session['expire']来实现,但是我不知道这段代码放在什么位置合适,放在登录检查时不合适吧,该放在什么位置了?

// 设置用户登录session登录限制时间 if(isset($_SESSION['expire'])){ if($_SESSION['expire']error('登录过期,请重新登录','Rbac/Login/login'); }else{ // 刷新时间戳 $_SESSION['expire']=time()+600; } }
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复 (1)
左手右手慢动作

原理就是:设置一个超时时长,如:600,登录时记录好时间起点,每次页面刷新,都要检查是否超时(其实逻辑是:是否登录-是否超时-是否有权限),如果超时,则提示已“登录超时请重新登录”并跳转到登录页,未超时,说明用户仍处于活动状态,则重置计时起点$_SESSION['expire']=time() + 600

    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!