已更新
所以我遇到了另一个问题,我认为这几乎是一回事。我正在使用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之前触发了其他东西。
我还缺少其他值吗?
答案 0 :(得分:0)
服务器决定何时清除陈旧的会话。
在某些时候会发生这种情况,具体取决于随机数和您给出的机会(在php.ini中)。
寻找session.gc_divisor。
因此,在您的情况下,您的PHPSESSID cookie仍然存在,您的浏览器会将其发送到服务器,但服务器找不到相应的会话。
答案 1 :(得分:0)
您还需要在php.ini中更改几个变量 。检查此link