3

我有以下代码来扩展我的$_SESSION[]变量。它们在大约 2-3 小时后到期。

我试图通过更改延长到 22 小时session.gc_maxlifetime,但几个小时后我仍然失去了我的会话。

//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();

如何增加会话的持续时间?

4

3 回答 3

2

是的,它可能是: session.cookie_lifetime 默认为 0,意味着在关闭浏览器时终止。

如果您关闭客户端并再次打开它 session.gc_maxlifetime 无关紧要 - 它仅适用于未终止的会话。

或者,您可能在其他地方更早地调用会话开始,并且 session.gc_maxlifetime 更小。通常框架会设置这一点。重复调用会话开始不会改变会话。

于 2012-05-16T20:21:27.537 回答
1

尝试在 php.ini 中更改它!由于会话生命周期是文件系统的事情,每个脚本的设置总是有问题的。

于 2012-05-16T20:26:04.153 回答
0

手册页上有关于此的注释;如果另一个使用同一目录存储会话数据的脚本没有设置 maxlifetime,它将使用较短的值。

于 2012-05-16T20:21:41.850 回答