如何将PHP会话设置为持续四个小时


How to set PHP session to last for four hours?

即使页面未被访问,如何使会话持续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小时后过期(而不是"当浏览会话结束时"),但如果我让页面处于非活动状态,并在大约一个小时后返回,它将不起作用,因为它会将我注销。发生了什么事?

您的会话文件存储在哪里?如果它与其他应用程序共享,则这些其他应用程序的会话生存期设置也适用于您。将session.save_path设置为只有您的应用程序才会使用的目录。

我会将session.cokie_lifetime保持为默认值:直到浏览器关闭。