gpt4 book ai didi

一段时间后PHP重置 session

转载 作者:可可西里 更新时间:2023-11-01 00:23:23 25 4
gpt4 key购买 nike

我知道这个问题已在 SO 中出现,我已经尝试了解决方案,但仍未解决。

PHP 在一段时间不活动后删除 session (我假设 24 分钟,因为它是默认值并且似乎适合测试)。

我在所有页面中设置了以下代码:

ini_set('display_errors', 0);
$sessionCookieExpireTime = 2880000;
session_set_cookie_params($sessionCookieExpireTime);
ini_set('session.gc_maxlifetime', $sessionCookieExpireTime);

session_start();
echo ini_get('session.gc_maxlifetime'); //echos 2880000 as expected

但是 session 在 24 分钟(左右)不活动后仍会重置。

phpinfo() 返回以下 session 输出: enter image description here

知道为什么这不起作用吗? (PHP 5.3.10)

谢谢

最佳答案

尽管 Marc B 的回答分享了一些很好的见解,但它对我不起作用。我非常确定我的脚本一切正常,并且我的代码中的 session 没有任何问题。

经过一场史诗般的斗争,我发现我的问题实际上是由于共享托管环境造成的。来自 PHP 文档:

“If different scripts … share the same place for storing the session data then the script with the minimum value will [determine the session timeout]“.

这之后问题就很明显了。一些脚本(托管在同一台服务器上)使用默认的 php.ini session.gc_maxlifetime 并且正在重置我的 session 。

解决方案是在我的主机根目录下创建一个文件夹(确保它不能通过网络访问),为其设置正确的权限,然后使用 session.save_path 告诉 php 将我的 session 存储在何处。像这样的东西:

ini_set("session.gc_maxlifetime","21600"); // 6 hours
ini_set("session.save_path", "/your_home/your_sessions/");
session_start();

这个网站提供了很好的见解:php sessions on shared hosting

因此,如果您遇到此问题,请务必遵循 Marc B 的建议,如果这不起作用,请尝试此方法。

祝你好运!

关于一段时间后PHP重置 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12251550/

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