使用php配置设置会话到期?

时间:2012-10-09 14:38:52

标签: php session

已更新

所以我遇到了另一个问题,我认为这几乎是一回事。我正在使用silex,我希望会话存储5天。我给出了以下值:

session.cookie_lifetime: 432000
session.gc_maxlifetime: 432000
session.gc_probability: 100
session.gc_divisor: 100

所以根据我的理解,因为概率和除数是相同的数字,gc应该发生在每个页面加载和会话文件(使用php本机文件处理程序)应保持在432000(60 * 60 * 24 * 5)秒没有任何活动。这个问题即使具有这些价​​值,我的会话似乎也会在1-2小时内无效。

我甚至尝试将gc_maxlifetime发送到5,这似乎工作得很好,所以它让我觉得在gc_maxlifetime之前触发了其他东西。

我还缺少其他值吗?

2 个答案:

答案 0 :(得分:0)

服务器决定何时清除陈旧的会话。

在某些时候会发生这种情况,具体取决于随机数和您给出的机会(在php.ini中)。

寻找session.gc_divisor。

因此,在您的情况下,您的PHPSESSID cookie仍然存在,您的浏览器会将其发送到服务器,但服务器找不到相应的会话。

答案 1 :(得分:0)

您还需要在php.ini中更改几个变量 。检查此link