使用gc_maxlifetime无法正常扩展PHP中的会话

时间:2012-05-16 20:17:01

标签: php session php-ini

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

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

3 个答案:

答案 0 :(得分:1)

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

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

或者,您可能会在较早的其他地方启动calles会话,并使用较小的session.gc_maxlifetime。框架经常设置这个。重复调用会话启动不会改变会话。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

有关于此的说明on the manual page;如果另一个使用相同目录存储会话数据的脚本没有设置maxlifetime,那么它将使用较短的值。