gpt4 book ai didi

php - session.gc_maxlifetime 不适合我

转载 作者:行者123 更新时间:2023-12-05 08:16:39 25 4
gpt4 key购买 nike

我想将 session 超时限制设置为 3 分钟,

我在页面中使用了这个

ini_set("session.gc_maxlifetime", "50"); 不工作

解决方案

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) { // last request was more than 30 minates ago session_destroy(); // destroy session data in storage session_unset(); // unset $_SESSION variable for the runtime } $_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp

最佳答案

三个变量用于定义 PHP session 变量的垃圾回收行为:

  1. session.gc_maxlifetime 是 session 的生命周期(以秒为单位)文件(默认值:1440 = 24 分钟)
  2. session.gc_probability 是执行垃圾收集器的概率的提名者(默认值 = 1)
  3. session.gc_divisor 是执行垃圾收集器的概率(默认 = 100 或 1000)

分母和分母一起用来确定概率(分母/分母)。因此,当 session.gc_probability 为 1 且 session.gc_divisor 为 100 时,这是 1/100 = 1 %。因此每次页面访问的 1%(= 每次 session_start 调用)都会执行垃圾收集器。

如果你想测试你的session是如何过期的,你需要将session.gc_probability和session.gc_divisor设置为1,这样每次页面访问都会导致垃圾收集器运行。此外,您需要使用两种不同的浏览器进行测试。当您使用第二个浏览器访问您的页面时,第一个浏览器的 session 被清除(并且第一个浏览器的 session 超时)。在我的测试中,当你只使用一个浏览器时, session 会自动延长,尽管它已经过时了。

关于php - session.gc_maxlifetime 不适合我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2064296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com