1

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

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

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

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

我该如何解决这个问题?

4

1 回答 1

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 中,并在旧会话消失时创建新会话。

可能想读这篇 在 PHP 中设计一个安全的自动登录 cookie 系统

在 PHP 中使用会话和 cookie 创建安全登录

于 2013-01-23T13:34:28.803 回答