【问题标题】:PHP Session variable timeoutPHP 会话变量超时
【发布时间】:2009-01-16 16:25:06
【问题描述】:

我的应用程序使用了一些超时的会话变量,尽管我认为它们不会超时,因为我在 php.ini 中有以下设置:

session.cookie_lifetime = 0

php.ini 中的其他会话设置几乎都设置为默认值。如何确保会话变量在浏览器窗口关闭之前一直存在?

【问题讨论】:

    标签: php


    【解决方案1】:

    我认为您使用 session.gc_maxlifetime 设置会话超时,默认为 1440 秒 - 24 分钟

    【讨论】:

    • gc = 垃圾收集。 1440 秒后执行 gc 的会话将删除它。
    • 是的,所以在这段时间之后,即使 cookie 仍然存在,会话也可能会消失
    【解决方案2】:

    请注意,从 PHP 4.2.3 开始,生命周期是根据修改日期而不是访问日期计算的(请参阅session.gc_maxlifetime)。因此,您必须在每次请求时更新会话数据以“重置计时器”。

    【讨论】:

    • 设置一个较长的值,例如 10800(3 小时)有什么危险吗?我不认为磁盘空间是个问题。
    • 我正在考虑将 gc_maxlifetime 提高到 10 小时。唯一的考虑是文件在被删除之前占用了多少磁盘空间?还有其他并发症吗?
    猜你喜欢
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 2012-03-08
    • 2011-03-05
    • 2011-10-17
    相关资源
    最近更新 更多