【发布时间】:2013-09-05 06:40:02
【问题描述】:
即使页面未访问,如何使会话持续 4 小时?我尝试使用
ini_set('session.gc_maxlifetime',14400);
和
ini_set('session.cookie_lifetime', 14400);
像这样:
ini_set('session.cookie_lifetime', 14400);
session_start();
但两者都不起作用。我尝试阅读 PHP SESSION,但要获取的信息很多,而且我已经尝试了几个选项,但效果不佳。
编辑:现在我已经尝试过了:
$hours = 4; //How long sessions last
$sessionCookieExpireTime=$hours*60*60;
// php.ini setting required for session timeout.
session_save_path('http://www.samplesite.com/');
ini_set('session.gc_maxlifetime', $sessionCookieExpireTime);
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 1);
session_set_cookie_params($sessionCookieExpireTime); /*Set the session parameters and start session*/
session_start();
然后在验证后:
setcookie(session_name(), $_COOKIE[session_name()], time() + 14400, "/");
现在显示,如果我检查浏览器上的 cookie 数据(而不是“浏览会话结束时”),它将在 4 小时后过期,但如果我让页面处于非活动状态并在大约一个小时后返回它,那就是不工作,因为它让我退出。怎么回事?
【问题讨论】:
-
4 小时?所以你想说入侵者,是的,我已经为你敞开大门,随意弄乱我的系统
-
使用不同的会话处理程序 = 数据库。在 _gc(垃圾收集器)中将最大会话时间设置为您需要的任何内容。
-
这是客户想要的,而 facebook 的会话可以持续这么长时间(或更长)对吧? @Mr.Alien
-
@SandaraKwon 我不喜欢 facebook,所以我不知道,教育你的客户,告诉他利弊,相信他会同意
标签: php session session-cookies