PHP会话超时为0,但会话仍在过期


PHP session timeout is 0, but session still expiring

我运行的是带有最新版本PHP和mysql的Apache 2.2。

在我的PHP.ini文件中,我可以看到会话超时设置为0,这意味着会话在浏览器关闭之前一直处于活动状态。

然而,我注意到,有时早上进来,打开浏览器并在一夜之间登录时,会话似乎已经过期。

是否有任何其他配置设置会导致会话过期?我只是想玩价值观,看看什么样的时间最适合我的网站。

非常感谢

Eds

您可以尝试:

http://in2.php.net/manual/en/session.configuration.php#ini.session.gc-最大使用寿命

您可以将其放在PHP文件中,第二个参数是数据被视为"垃圾"并可能被清理的秒数。:

ini_set('session.gc_maxlifetime', 30*60);

希望得到帮助!

编辑:

是的,我应该提一下,谢谢你的指出。

如Willem 所建议

"必须在session_start()之前调用该函数;–Willem"

示例:

<?php
 ini_set('session.gc_maxlifetime', 30*60);
 session_start();
 ?>