在PHP中运行长期会话和垃圾收集

时间:2012-07-30 07:05:30

标签: php session garbage-collection

我想要的是能够将会话变量保存12小时,因此用户无需重新登录。

我正在使用这样的东西:

if(ini_get('session.gc_maxlifetime') !== 3600*12) {
    ini_set('session.gc_maxlifetime', 3600*12);
}
if(ini_get('session.cookie_lifetime') !== 3600*12) {
    ini_set('session.cookie_lifetime', 3600*12);
}

session_start();    

我已经回应了这些变量而且它们都设置得很好。但只要浏览器关闭,会话就会被破坏,用户必须登录。

我最近读过(但现在找不到资源),因为垃圾收集,应该更改长时间运行的会话cookie的位置文件夹。

在哪里/如何配置?

谢谢!

1 个答案:

答案 0 :(得分:1)

此代码看起来不错。 您应首先在客户端检查PHPSESSID cookie,以确保它确实设置为在+12小时内到期。由于您说“只要浏览器关闭会话被破坏且用户必须登录”,cookie就不会在+12小时内到期。您是否在设置session。* variables?

后启动会话