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

Php 为什么会从tmp文件夹中删除我的会话文件?,php,session,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函数调用的脚

我有一个cookie,看起来创建正确,在chrome中列为

Created:    Tuesday, January 22, 2013 4:17:01 PM
Expires:    Thursday, May 2, 2013 5:17:22 PM
我在服务器上的tmp文件夹中看到会话文件,我可以关闭并重新打开浏览器并保持登录状态。但是,在几个小时不活动之后,会话文件似乎从tmp文件夹中删除

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


如何解决此问题?

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

ini_set( 'session.gc_maxlifetime', seconds );
session.gc_maxlifetime指定数据被视为“垃圾”并可能被清除的秒数。垃圾收集可能在会话启动期间发生(取决于session.gc_概率和session.gc_除数)

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

你可能想看看这个

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

ini_set( 'session.gc_maxlifetime', seconds );
session.gc_maxlifetime指定数据被视为“垃圾”并可能被清除的秒数。垃圾收集可能在会话启动期间发生(取决于session.gc_概率和session.gc_除数)

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

你可能想看看这个

还有这个

很有趣。设置长ini.session.gc-maxlifetime的缺点是什么?另外,在使用您的令牌建议时,我的理解是,我将检查是否有活动会话,如果没有,检查令牌cookie,然后将此令牌与令牌/用户名组合表相匹配(令牌是一个任意值,如
md5(uniqid(“”,true));
,如您的链接问题所建议)从而重新填充会话数据。我的理解正确吗?没错。您不应该单独依赖会话的原因是它只创建临时文件。会话不设计为在数天或数月内处于活动状态。您将为每个会话创建一个会话文件,如果您有足够的通信量,该文件将很容易使服务器崩溃。在ext文件系统上,一个目录中已有10000个文件,这大大增加了随机访问的目录查找。设置长ini.session.gc-maxlifetime的缺点是什么?另外,在使用您的令牌建议时,我的理解是,我将检查是否有活动会话,如果没有,检查令牌cookie,然后将此令牌与令牌/用户名组合表相匹配(令牌是一个任意值,如
md5(uniqid(“”,true));
,如您的链接问题所建议)从而重新填充会话数据。我的理解正确吗?没错。您不应该单独依赖会话的原因是它只创建临时文件。会话不设计为在数天或数月内处于活动状态。您将为每个会话创建一个会话文件,如果您有足够的通信量,该文件将很容易使服务器崩溃。在ext文件系统上,一个目录中已有10000个文件,这大大增加了随机访问的目录查找