我遇到一个奇怪的问题。在我的移动站点中,用户将手机休眠约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();
从你提供的代码中,我假设你正在使用默认的会话存储,这意味着会话数据存储在文件系统中,cookie只包含PHPSESSID
(会话ID)。为了在使用文件系统时更长时间地存储会话数据,您需要相应地设置session.gc_maxlifetime
配置。您可以在php.ini
或ini_set()
中执行此操作:
ini_set("session.gc_maxlifetime", 60*60*24*7);
如果你想增加Cookie的生存期(默认为0,意味着当浏览器关闭时它会被删除),你可以设置session.cookie_lifetime
,或者再次使用ini_set()
,或者就像你在你的例子中做的那样。