在 PHP 中扩展会话gc_maxlifetime不起作用


Extending the Session in PHP with gc_maxlifetime not working

我有以下代码来扩展我的$_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();

如何延长会话的持续时间?

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

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

或者,您可能让呼叫会话在其他地方更早启动,session.gc_maxlifetime较小。 框架通常会设置这一点。 重复调用会话启动不会改变会话。

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

手册页上有一个关于此的说明;如果另一个使用同一目录来存储会话数据的脚本没有设置最大生命周期,它将改用较短的值。