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

时间:2012-07-31 12:01:32

标签: php mysql apache session timeout

我使用最新版本的PHP和mysql运行Apache 2.2。

在我的PHP.ini文件中,我可以看到会话超时设置为0,这意味着会话保持活动直到浏览器关闭。

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

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

非常感谢

1 个答案:

答案 0 :(得分:4)

您可以尝试:

http://in2.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

你可以将它放在你的PHP文件中,第二个参数是秒数,之后数据将被视为“垃圾”并可能被清除。 :

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

希望这有帮助!

修改

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

正如Willem所建议的

“必须在session_start()之前调用该函数; - Willem”

示例:

<?php

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

 ?>