1、最有效的方法 修改php.ini中
#session的超時時間 session.gc_maxlifetime = 1440
2、通過php去修改這個值
$Lifetime = 3600; $Seperator = (strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN")) ? "\\" : "/"; $DirectoryPath = dirname(__FILE__) . "{$Seperator}SessionData"; is_dir($DirectoryPath) or mkdir($DirectoryPath, 0777); if (ini_get("session.use_trans_sid") == true) { ini_set("url_rewriter.tags", ""); ini_set("session.use_trans_sid", false); } ini_set("session.gc_maxlifetime", $Lifetime); ini_set("session.gc_divisor", "1"); ini_set("session.gc_probability", "1"); ini_set("session.cookie_lifetime", "0"); ini_set("session.save_path", $DirectoryPath); session_start();
3、采用增加cookie的時間,變相的增加session的時間
/** * *下面只是設置了保存sessionid的那個時間,這樣的結果是關閉瀏覽器后session仍可以用 *實際並沒有改變session的生存時間 * */ //只會在用戶第一次訪問的時候設置保存sessionid的那個cookie的過期時間 $lifetime=600; session_set_cookie_params($lifetime);#注意到放到start的前面 session_start(); //每次都設置保存sessionid的那個cookie的過期時間 $lifetime=600; session_start(); setcookie(session_name(),session_id(),time()+$lifetime);
//同上,每次都會設置 $lifetime=86400; session_set_cookie_params($lifetime); session_start(); session_regenerate_id(true);
參考手冊中 session_set_cookie_params 函數 comment
