为什么我的会话文件从我的tmp文件夹中删除?

时间:2013-01-23 13:21:01

标签: php session

我有一个似乎正确创建的Cookie,在chrome中列为

Created:    Tuesday, January 22, 2013 4:17:01 PM
Expires:    Thursday, May 2, 2013 5:17:22 PM

我在服务器上的tmp文件夹中看到会话文件,我可以关闭并重新打开浏览器并保持登录状态。但是,在几小时不活动后,会话文件似乎从tmp文件夹中删除

我解决了会话被覆盖的先前问题(会话文件仍然存在,但大小为0字节),因为jquery函数调用的脚本没有保留会话数据。但是,在这种情况下,会话文件会消失。

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

每个会话的有效期都有限。在PHP中,这个生命周期可以通过

设置
ini_set( 'session.gc_maxlifetime', seconds );
  

session.gc_maxlifetime指定数据被视为“垃圾”并可能被清除的秒数。会话开始时可能会收集垃圾(取决于session.gc_probability和session.gc_divisor)。

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

不要将此值设置为非常高的值(天或月) 如果要自动登录用户,请将令牌保存到用户cookie中,并在旧会话消失时创建新会话。

可能想读这个 Designing a secure auto login cookie system in PHP

这个 Creating a secure login using sessions and cookies in PHP