and*_*ytt 3 php session ini-set
我想在PHP中设置gc_maxlifetime.
这是'header.php'中的代码,我在每个页面都包含它.
ini_set('session.cookie_lifetime', 1);
ini_set('session.gc_maxlifetime', 1);
session_start();
Run Code Online (Sandbox Code Playgroud)
我测试一下
echo ini_get('session.gc_maxlifetime');
Run Code Online (Sandbox Code Playgroud)
它确实设置为1.
但它仍然保持登录状态,也就是说,会话没有被删除.
可能的原因是什么?
垃圾收集为什么不运行?
GC并不总是在每个请求上运行,默认的PHP设置是它有1%的机会运行GC.session.gc_probability
(默认1)/ session.gc_divisor
(默认100)= 0.01(1%几率)
相关手册条目:http://php.net/manual/en/session.configuration.php#ini.session.gc-probability
我的建议是存储上次触摸会话的时间,并在每次加载页面时检查该值,如果已经过了足够的时间,则将session_destroy
用户重定向到登录页面.
归档时间: |
|
查看次数: |
12958 次 |
最近记录: |