gpt4 book ai didi

php - session 提前结束

转载 作者:行者123 更新时间:2023-12-05 08:01:46 24 4
gpt4 key购买 nike

我们最近从运行 xamp 的 Windows 2003 服务器迁移到运行带有 PHP 5.3.3 版的 apache 的 Centos 服务器。

最初,问题是用户在大约 24 分钟后注销,因此我更改了 INI 变量 session.save_path,从而解决了问题。然而,一些用户仍然周期性地退出我们的网站,似乎是随机的。它发生在多个用户在不同的时间使用不同的浏览器。有时在让页面闲置之后,但有时在从一个页面浏览到另一个页面时。

这是我们与 session 相关的 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 点删除所有 session ,因为 session 已移出 tmp 目录。

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

如有任何帮助,我们将不胜感激。

最佳答案

问题似乎是由我的 cookie 在我的服务器删除 session 后过期引起的。

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

我将 cookie 的持续时间减少到 12 小时,这样 cookie 总是会在用户下次需要登录之前过期,问题就消失了。

关于php - session 提前结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12184148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com