PHP ini_set会话gc_maxlifetime无法正常工作

时间:2014-03-19 04:38:46

标签: php session ini-set

我正在尝试在PHP中设置gc_maxlifetime。

以下是' header.php'中的代码,我在每个页面都包含它。

ini_set('session.cookie_lifetime', 1);
ini_set('session.gc_maxlifetime', 1);
session_start();

我用

进行测试
echo ini_get('session.gc_maxlifetime');

并且设置为1。

但仍然保持登录状态,即会话已被删除。

可能的原因是什么?

1 个答案:

答案 0 :(得分:5)

为什么不运行垃圾收集?

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并将用户重定向到登录页面。