假设有一个登录会员区的站点/系统,用户很少,但在使用该站点/系统时注销非常不方便。
这可能是会话即将到期,因为用户没有闲置很长时间。即使它们空闲,我也添加了一个周期性的 AJAX 请求,即所谓的心跳,它会更新会话的访问时间和修改时间。我什至在每次用户单击某些东西或调用心跳时添加一个 touch($session_file) 。我也尝试重新生成会话 ID。没有任何帮助。
不幸的是,到目前为止,我无法在本地重现该问题,因为它经常发生,当有更多请求时。一些 php.ini 参数:
session.use_cookies = 1
session.use_only_cookies = 1
session.cookie_lifetime = 0
session.gc_probability = 1
session.gc_divisor = 1500
session.gc_maxlifetime = 10800