Php 移动浏览器从睡眠中唤醒时会话丢失

Php 移动浏览器从睡眠中唤醒时会话丢失,php,session,Php,Session,我有一个奇怪的问题。在我的手机网站上,用户将手机置于睡眠状态约30分钟并尝试重新使用网站后,会话似乎丢失了 更改会话.cookie\u生存期似乎对此没有任何影响 我可以通过增加session.gc\u maxlifetime的值来解决此问题吗 这是完整的代码 header("Access-Control-Allow-Origin: http://www.private.net"); header("Access-Control-Allow-Credentials: true"); ini_set

我有一个奇怪的问题。在我的手机网站上,用户将手机置于睡眠状态约30分钟并尝试重新使用网站后,会话似乎丢失了

更改
会话.cookie\u生存期似乎对此没有任何影响

我可以通过增加
session.gc\u maxlifetime
的值来解决此问题吗

这是完整的代码

header("Access-Control-Allow-Origin: http://www.private.net");
header("Access-Control-Allow-Credentials: true");
ini_set("session.gc_maxlifetime", 60*60*24);
session_set_cookie_params(60*60*24*7, "/", COOKIE_DOMAIN);
session_start();

根据您提供的代码,我假设您使用的是默认会话存储,这意味着会话数据存储在文件系统中,cookie仅包含
PHPSESSID
(会话ID)。 为了在使用文件系统时更长时间地存储会话数据,您需要相应地设置配置。 您可以在
php.ini中执行此操作,也可以使用:

ini\u集(“session.gc\u maxlifest”,60*60*24*7);


如果要增加Cookie生存期(默认为0,表示浏览器关闭时将删除),可以设置或再次使用,或者像您在示例中那样进行操作。

我遇到了与将会话详细信息存储到数据库中相同的问题。我已经采取了一个临时步骤,使用cookie来维护用户信息,并在会话丢失时重新登录。这不是一个非常安全的方法。我很好奇解决这个问题的标准方法是什么。如果使用相同的垃圾收集器,将其存储在其他地方是没有帮助的。如果您需要更长的会话生存期,可以,增加gc_maxlifetime。如果您使用的是共享主机,请确保您的session.save_dir未与其他站点共享,因为配置的“最低”生存期将过早赢得/清除。