【问题标题】:What is the default session expiration time in PHP?PHP中的默认会话到期时间是多少?
【发布时间】:2011-05-13 03:30:20
【问题描述】:

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

谢谢

感谢所有回复...有没有办法将会话设置为永不过期而无需更改 PHP 设置本身?

【问题讨论】:

    标签: php ajax session session-timeout


    【解决方案1】:

    来自 php.ini:

    ; cookie 的生命周期(以秒为单位),或者,如果 0,直到浏览器重新启动。 ; http://php.net/session.cookie-lifetime session.cookie_lifetime = 0

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

    【讨论】:

      【解决方案2】:

      session.gc_maxlifetime 的默认值为 1440 秒。因此,垃圾收集器假定会话在上次修改时间至少为 1440 秒前时过期。

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

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

      【讨论】:

        猜你喜欢
        • 2013-06-02
        • 2019-09-20
        • 2017-11-02
        • 2011-10-15
        • 2010-09-14
        • 2014-02-06
        • 2010-11-03
        • 1970-01-01
        • 2015-12-21
        相关资源
        最近更新 更多