在用户注销之前,PHP会话不应过期

时间:2014-04-08 01:58:24

标签: php

在我的网站上,有时用户会突然退出,甚至没有点击“退出”状态。按钮。为什么会这样?我已经检查了我的默认设置

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();

?>

1 个答案:

答案 0 :(得分:0)

你在共享主机吗?在将会话文件存储在随机清除并删除会话文件的默认共享目录中之前,我在共享主机上遇到了同样的问题。我通过将会话文件移动到另一个目录来解决它。

尝试使用session_save_path("path/to/another/folder")将会话保存到您可以控制的其他位置,看看是否有帮助。