我正在尝试增加PHP会话生命周期。在阅读了互联网上的几个教程以及关于SO的问题和答案后,我已经没有想法为什么它不能在我的系统上运行。位于this page的最后一个测试代码段下方。
ini_set('session.gc_maxlifetime',10*60*60);
ini_set('session.gc_probability',1);
ini_set('session.gc_divisor',1);
$sessionCookieExpireTime = 10*60*60;
session_set_cookie_params($sessionCookieExpireTime);
session_start();
if (isset($_COOKIE[session_name()]))
setcookie(session_name(), $_COOKIE[session_name()],
time() + $sessionCookieExpireTime, '/');
if (!isset($_SESSION['username'])) {
session_destroy(); // executed at most 2 hours after login
header('Location: /login.php');
}
if (/*login-form sent*/) {
$_SESSION['username'] = 'foo';
}
ini_set
和session_set_cookie_params
似乎都有效:
之前:
string(4) "1440"
array(5) {
["lifetime"] => int(0)
["path"] => string(1) "/"
["domain"] => string(0) ""
["secure"] => bool(false)
["httponly"] => bool(false)
}
后:
string(5) "36000"
array(5) {
["lifetime"] => int(36000)
["path"] => string(1) "/"
["domain"] => string(0) ""
["secure"] => bool(false)
["httponly"] => bool(false)
}
但是不到两个小时后,我就退出了。是否存在增加会话寿命的副作用可能无效?我做了一些检查: