1

...或者您只需要开始一个新会话?

我被赋予了修复导致会话过期的错误的任务,即使 session.gc_maxlifetime 设置为 8 小时(它确实已设置,我已经检查过)。

浏览完代码后,我注意到 session_start() 在每次加载时都会被调用,正如预测的那样,但登录数据会话仅在用户登录时设置。

我是否需要在每次页面加载时设置用户数据会话以重置会话生命周期?

即使页面没有重新加载,我也需要会话保持 8 小时。

4

2 回答 2

0

您可能正在使用会话文件的默认位置,它是服务器上所有网站共享的临时目录。在这种情况下,最短的站点session.gc_maxlifetime可能会从所有站点中删除会话数据。原因是无法确定哪个站点拥有哪个会话文件。

您需要为会话创建一个自定义目录并使用session.save_path指定它

于 2012-12-05T11:10:25.273 回答
0

您需要再次设置会话变量。

一种方法,使用$_SESSION['last_click_time'] = time();并比较它。如果它已过时,请刷新会话变量,重新登录用户等。

于 2012-12-05T10:30:05.670 回答