-2

即使页面未访问,如何使会话持续 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

1 回答 1

0

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

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

于 2013-09-02T08:52:57.363 回答