移动浏览器从睡眠状态唤醒时会话丢失

时间:2014-07-24 04:19:15

标签: php session

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

改变session.cookie_lifetime似乎对此没有任何影响。

我可以通过增加session.gc_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();

1 个答案:

答案 0 :(得分:1)

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

中执行此操作

ini_set("session.gc_maxlifetime", 60*60*24*7);

如果你想增加Cookie的生命周期(默认为0,意味着它在浏览器关闭时被删除)你可以设置session.cookie_lifetime,或者再次使用ini_set(),或者只是做就像你在你的例子中这样做。

相关问题