PHP中的默认会话到期时间是多少?

时间:2010-11-20 17:09:34

标签: php ajax session session-timeout

我有一个Web应用程序,每分钟都会ping一次数据库以检查新条目。该页面设计为与...没有任何交互。您只需将其保持打开状态即可显示内容。该页面受密码保护,该网站可以在没有任何人点击网络浏览器或任何东西的情况下进行。我发现它在大约一天之后停止检查数据库(通过Ajax请求),然后如果你手动刷新页面,它会再次进入登录页面。我假设那是因为具有登录信息的会话到期。我从未设置过期时间,但PHP会在一定时间后自动销毁会话吗?我该怎么做才能解决这个问题?

由于

感谢所有的回复...有没有办法将会话设置为永不过期而不仅仅是更改PHP设置?

2 个答案:

答案 0 :(得分:7)

session.gc_maxlifetime的默认值为1440秒。因此,当最后一次修改至少在1440秒之前,垃圾收集器会假定会话已过期。

请注意,当使用Cookie作为会话ID时,它可能会有不同的lifetime session.cookie_lifetime 的默认值0使cookie成为会话cookie,这意味着它在浏览器会话结束时终止(即浏览器关闭)。

有关会话到期的更多信息,另请参阅my answer on How do I expire a PHP session after 30 minutes?

答案 1 :(得分:1)

来自php.ini:

  

cookie的生命周期,如果   0,直到浏览器重新启动。 ;   http://php.net/session.cookie-lifetime   session.cookie_lifetime = 0

如果我没弄错的话,那将是默认的。将其设置为零(如果尚未设置)或仅使用另一个cookie。