我想将会话超时限制设置为3分钟,
我在页面中使用过这个
ini_set("session.gc_maxlifetime","50"); 不工作
解决方案
if(isset($ _ SESSION ['LAST_ACTIVITY'])&&(time() - $ _SESSION ['LAST_ACTIVITY']> 1800)){//最后一次请求超过30分钟前session_destroy(); //销毁session_unset()中的会话数据; //为运行时取消设置$ _SESSION变量} $ _SESSION ['LAST_ACTIVITY'] = time(); //更新上次活动时间戳
三个变量用于定义PHP会话变量的垃圾收集行为:
分子和分母一起用于确定概率(分母/分母).因此,当session.gc_probability为1且session.gc_divisor为100时,这是1/100 = 1%.因此每个页面的1%访问(=每个session_start调用)执行垃圾收集器.
如果要测试会话的过期方式,则需要将session.gc_probability和session.gc_divisor设置为1,这样每次访问页面都会导致垃圾收集器运行.此外,您需要使用两种不同的浏览器进行测试.当您使用第二个浏览器访问页面时(第一个浏览器的会话超时),第一个浏览器的会话将被清除.在我的测试中,当您只使用一个浏览器时,会话会自动扩展,尽管它已过时.