【发布时间】:2012-05-16 20:17:00
【问题描述】:
我有以下代码来扩展我的$_SESSION[] 变量。它们在大约 2-3 小时后到期。
我尝试通过更改 session.gc_maxlifetime 来延长到 22 小时,但几个小时后我仍然失去了我的会话。
//start sessions
ini_set('session.gc_maxlifetime', 60*60*22); // 22h - one day
//Output just to make sure config was changed.
echo ini_get("session.gc_maxlifetime");
session_start();
如何增加会话的持续时间?
【问题讨论】:
-
22 小时是一天?我错过了什么吗?
-
w/e 将其更改为 24 小时,22 小时是为了避免在工作期间在上午 9 点重新登录。它会在早上 7 点左右让您注销,然后您在早上 9 点登录。
-
@mata 可能是因为他想防止用户每天早上同时打开浏览器时自动注销!?我认为这是一个非常聪明的解决方案。
-
另外,如果您有多个 php.ini 用于一个站点,它可能对共享相同缓存文件夹的所有站点使用最短的 session.gc_maxlifetime。因为默认情况下,如果运行垃圾收集,每个会话文件都在同一个位置,它会在缓存中的所有文件上运行。