我的 PHP 会话随机到期,并且很少持续超过大约 5 分钟(300 秒)。
我在这里试验 PHP 和 MySQL 登录脚本:http: //www.wikihow.com/Create-a-Secure-Login-Script-in-PHP-and-MySQL(下面提取的 sec_session_start 函数)。
function sec_session_start() {
$session_name = 'sec_session_id'; // Set a custom session name
$secure = false; // Set to true if using https.
$httponly = true; // This stops javascript being able to access the session id.
ini_set('session.use_only_cookies', 1); // Forces sessions to only use cookies.
$cookieParams = session_get_cookie_params(); // Gets current cookies params.
session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly);
session_name($session_name); // Sets the session name to the one set above.
session_start(); // Start the php session
session_regenerate_id(true); // regenerated the session, delete the old one.
}
我已经对该主题进行了广泛的阅读以尝试解决问题,并了解许多原因导致 PHP 会话过早过期。如果您对如何解决问题有任何想法,请告诉我,因为问题让我发疯!
请注意:
1. 在 php.ini 中我设置了 session.gc_maxlifetime = 3600
2. 我的主机是 IPage。
2. 我尝试将 session_set_cookie_params 编辑为以下内容,但并没有解决问题:
session_set_cookie_params( time()+1800, "/", $cookieParams["domain"], $secure, $httponly);