【问题标题】:How to keep php sessions alive for longer如何让 php 会话保持更长时间
【发布时间】:2014-01-23 06:45:59
【问题描述】:

您好,我一直在阅读此内容,目前我们将其作为解决方案:

ini_set("session.gc_maxlifetime", "28800");
ini_set('session.gc_probability',1);
ini_set('session.gc_divisor',1);
ini_set('session.cookie_lifetime','28800');  
session_set_cookie_params(86400);
session_start();

但是我的一所大学已经注销,是否有其他解决方案可能使用 session_set_cookie_paramshtaccess

【问题讨论】:

  • 你读过this SO answer吗?
  • 有什么问题?您不希望用户在关闭浏览器时注销吗?

标签: php session


【解决方案1】:

目前我们有这个解决方案:

什么问题?是的,您希望会话持续更长时间....多长时间?

ini_set(

为什么不改变你的 php.ini 中的值,这样你就不需要确保你的代码在调用 session_start() 之前获取每个脚本(毕竟如果你有触发垃圾收集的脚本但不要更改 max_lifetime 或 cookie_lifetime 否则他们将在会话使用的值到期时丢弃会话。

ini_set('session.cookie_lifetime','28800');

将会话 cookie 生命周期设置为 8 小时

session_set_cookie_params(86400);

将会话 cookie 生命周期设置为 24 小时。

如果不能在相邻的 2 行代码之间保持一致......?

【讨论】:

  • 我会使用 php.ini,但我们只希望在某些区域使用它 - 主要是管理区域 - 我会尝试改变时间 - 可能就是这样。
  • 否 - 您不能在网站的不同部分有不同的会话设置,除非您有不同的 cookie 路径和/或会话标识符。
【解决方案2】:

主要的方法是扩展你的 session_set_cookie_params 值。我认为 86400 只有 24 小时,所以在那之后,cookie 将过期。尝试将其设置为巨大的。

只有在从浏览器中删除 cookie 时,会话才会过期。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    相关资源
    最近更新 更多