Php 提前结束的会话

Php 提前结束的会话,php,session,Php,Session,我们最近从一台运行xamp的Windows2003服务器迁移到一台运行apache的Centos服务器,PHP版本为5.3.3 最初,问题是用户在大约24分钟后注销,因此我更改了INI变量session.save_path,从而解决了问题。然而,一些用户仍在定期从我们的网站注销,似乎是随机的。多个用户在不同的时间使用不同的浏览器时会发生这种情况。有时在页面未使用后,但有时在从一个页面浏览到另一个页面时 以下是与会话相关的INI设置: session.save_handler = file

我们最近从一台运行xamp的Windows2003服务器迁移到一台运行apache的Centos服务器,PHP版本为5.3.3

最初,问题是用户在大约24分钟后注销,因此我更改了INI变量
session.save_path
,从而解决了问题。然而,一些用户仍在定期从我们的网站注销,似乎是随机的。多个用户在不同的时间使用不同的浏览器时会发生这种情况。有时在页面未使用后,但有时在从一个页面浏览到另一个页面时

以下是与会话相关的INI设置:

    session.save_handler = files  
    session.save_path = "/var/sessions"  
    session.use_cookies = 1  
    ;session.cookie_secure =  
    ;session.use_only_cookies = 1  
    session.name = PHPSESSID  
    session.auto_start = 0  
    session.cookie_lifetime = 86400  
    session.cookie_path = /  
    session.cookie_httponly =  
    session.serialize_handler = php  
    session.gc_probability = 1  
    session.gc_divisor = 1000  
    session.gc_maxlifetime = 86400  
    session.bug_compat_42 = Off  
    session.bug_compat_warn = On  
    session.referer_check =  
    session.entropy_length = 0  
    session.entropy_file =  
    ;session.entropy_length = 16  
    session.cache_limiter = nocache  
起初我认为浏览器中的cookie可能有问题,因为其中一个用户将cookie设置为永不过期,即使代码将cookie设置为24小时后过期。但是,在删除cookie并让他重新登录后,它将cookie正确地设置为24小时,他也会遇到同样的问题,即过早地注销

我创建了一个cron作业脚本,该脚本在每天早上4点删除所有会话,因为会话已移出tmp目录

我今天发现服务器上的会话没有被删除,但是当用户重新登录时,会创建一个具有新会话ID的新会话,即使他们在服务器上仍然有一个现有会话


任何帮助都将不胜感激。

问题似乎是由于我的服务器删除会话后我的Cookie过期引起的

我有一个脚本设置,每天早上4点从服务器上手动删除会话,但是我的cookie设置为持续24小时。因此,即使用户重新登录网站并在服务器上创建新会话,cookie的过期时间也没有更新


我将cookie的持续时间缩短为12小时,这样cookie将始终在用户下次需要登录之前过期,并且问题已经消失。

根据我的经验,如果用户使用IE,浏览器将忽略您的会话过期设置并自行处理。你确定不是这样吗?一个可能很愚蠢的问题-你的服务器的日期、时间和时区正确吗?我假设你已经检查过了,但是询问费用是零。请看这里:是的,服务器日期和时间都是正确的,php date.timezone=“America/Los_angeles”。我们有使用IE8和Firefox 14的用户都遇到了这个问题。gc_maxlifest变量应该无关紧要,因为我已将session.save_path设置为其他值,但我已将该值设置为last 24 hours,与cookie持续时间相同。创建cookie时,cookie的有效期为24小时。我查看了Grzegorz的链接,但没有看到这有什么帮助。@Ivaughan:如果链接没有帮助,我很抱歉。当Gaumbo说人们使用的方法不可靠时,我认为这是可能的。我唯一想到的是,请注意,我从未遇到过您遇到的这个问题,那就是会话id发生了变化。我现在想不出别的了。