我的 php.ini 文件设置为 session 在 24 小时内过期。但我的用户在 20 分钟左右就被注销后提示。
我在每个页面的开头使用session_start。这会给我带来麻烦吗? 或者还有什么其他原因导致这种情况吗?
刚刚意识到我可能位于共享主机上。它可能有一些用于 session 垃圾收集的组设置。有人知道如何研究这个问题或将我的设置更具体吗?
谢谢!
最佳答案
检查phpinfo()
以查看实际设置是什么。 PHP 有多个 .ini 文件,并且它的设置可以在多个地方被覆盖,因此您的 session session 可能不是实际生效的 session 。 phpinfo 的输出将显示“本地”this-is-now-whats-in-effect 设置是什么。
除此之外,session_start() 不会删除 session 本身,但它可能会根据一些 gc_*
.ini 设置触发 session 垃圾收集器运行。不过,这是一个概率问题,不会在每次开始 session 时都会发生。
另一种可能性是,您的 session 文件将进入某处的系统临时目录,而 PHP 外部的某些东西会每隔 20 分钟清理该目录。因此,请检查 session.save_path
设置是什么,看看是否有任何内容正在清理该位置。
关于php - php 中的 session_start() 会扰乱我的用户 session 长度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6471431/