在我的网站上,有时用户甚至没有点击"注销"按钮就会突然注销。为什么会这样?我已经检查了我的默认设置,
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 0 0
一切似乎都很好,因为垃圾收集器只是以session.gc_probability除以session.gc_divisor的概率启动的。使用该选项的默认值(分别为 0 和 1000),几率为 0%。那么为什么用户会被注销呢?请告诉我如何实现用户在单击"注销"按钮之前不应注销的功能,即session_start()在用户单击"注销"按钮之前不应进行垃圾收集?
如果我在每个脚本中包含下面的代码,它会起作用吗?
<?php
ini_set('session.gc_maxlifetime', 30*60);
session_start();
?>
你在共享主机上吗? 之前我在共享主机上遇到了同样的问题,其中会话文件存储在默认共享目录中,该目录被随机清除并删除会话文件。 我通过将会话文件移动到另一个目录来绕过它。
尝试将会话保存到您可以使用session_save_path("path/to/another/folder")
可以控制的其他位置,看看是否有帮助。