本來網站運作正常
但自從之前為了測試更改了系統時間
再改回來後,Chrome和Firefox就登不進去了
我檢查後發現是因為每次session都會重新產生
導致無法讀取上次產生的session(但不知為何IE卻可以登入)
取消了跟GC有關的設定後就可以登入了
但那些設定是為了減少伺服器負擔
而且我搞不懂為什麼那些設定會導致每次session都重新產生
況且之前是可以運作的,之前我並沒有修改到跟session有關的部分
如果可以希望能真的找到為什麼會如此,以及如何解決
這是PHP端建立session的語法
(前人留下的,原作者是 Atli@bytes.com)
function session_start_timeout ($timeout=1200, $probability=20,
$cookie_domain='/') {
ini_set("session.gc_maxlifetime", $timeout);
ini_set("session.cookie_lifetime", $timeout);
$seperator = strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN") ? "\\" : "/";
$path = ini_get("session.save_path") . $seperator . "session_" . $timeout .
"sec";
if(!file_exists($path)) {
if(!mkdir($path, 600)) {
trigger_error("Failed to create session save path directory '$path'.
Check permissions.", E_USER_ERROR);
}
}
ini_set("session.save_path", $path);
ini_set("session.gc_probability", $probability);
ini_set("session.gc_divisor", 100); // Should always be 100
session_start();
if(isset($_COOKIE[session_name()])) {
$curr = time();
$expire = $curr + $timeout;
//setcookie(session_name(), $_COOKIE[session_name()], $expire,
$cookie_domain);
if (! setcookie(session_name(), $_COOKIE[session_name()], $expire,
$cookie_domain))
error_log ('Cookie set error:' . session_name());
}
}
}
謝謝各位