php 5分钟后未操作,自动登出的问题

smileqingyuan 发布于 2016/06/23 15:26
阅读 1K+
收藏 1
PHP

需求:用户登录后,如果两次操作中间间隔了5分钟,用户需要重新登录

目前的情况:用户登录后,存放到session中

我目前想当用户存放到session时,获得当前的时间curtime,用户每次操作时,判断时间间隔,如果5分钟内,更新curtime,大于5分钟,销毁session。  但是,页面那么多,怎么能够做到操作每个页面都能进行判断呢? 如果有更好的方法,还望大家多多指教。

非常感谢!!

加载中
0
数组斯诺
数组斯诺

因为session在这里本来就是个数组,只是每个用户的session数组不一样,所以可以把用户登陆时间存到session里,每回操作都判断一下

if($_session['time']+1800>time()){

    $_session['time']=time();

}else{

session_destory();

exit;

}

smileqingyuan
smileqingyuan
回复 @数组斯诺 : 非常感谢,用你的这种方法已经解决了
数组斯诺
数组斯诺
回复 @smileqingyuan : 默认1/1000概率清除掉过期session,这个是可以设置的
smileqingyuan
smileqingyuan
回复 @数组斯诺 : 1400s的那个我试过了,不行
数组斯诺
数组斯诺
回复 @smileqingyuan : 如果你有固定的入口文件的话,只需要在入口加上这段;如果页面都是分离的还想偷懒,可以在php.ini里改:官方的默认是每个session有1400s的有效期,默认1/1000的概率会清理过期的session
smileqingyuan
smileqingyuan
操作的页面比较多,需要每个页面都加入这段代码吗?
0
移动设备JAVA代码搬砖侠
移动设备JAVA代码搬砖侠
可能是需要用coockies实现吧
smileqingyuan
smileqingyuan
我这边用的是session存的用户信息,没用cookie
0
老陌
老陌
用session(数据库,redis等都可以) 记录用户的访问时间。判断这次访问和上次访问的时间间隔
老陌
老陌
回复 @smileqingyuan : 静态页不能处理,如果是动态页面,就在入扣处加,多入口,就每个入口都加,封装成方法嘛
smileqingyuan
smileqingyuan
用户访问非登录页面(多个页面),缓存内时间该如何更新?
0
沧海_Sea
沧海_Sea
session 不是可以自动过期么
0
彩虹糖tang
彩虹糖tang
所以说单一入口的优势就体现出来了?
0
eechen
eechen
session.cookie_lifetime默认是0,也就是关闭浏览器时cookie失效.除了php.ini里配置cookie_lifetime,还可以通过函数session_set_cookie_params进行设置.也就是每次用户访问时都用:
session_set_cookie_params(time()+5*60);
设置一次session对应的cookie(Firebug中可见默认名为PHPSESSID)的过期时间为5分钟后.
返回顶部
顶部