[爆卦]Chrome PHP session是什麼?優點缺點精華區懶人包

為什麼這篇Chrome PHP session鄉民發文收入到精華區:因為在Chrome PHP session這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Peruheru (還在想)看板PHP標題[請益] session在chrome和FF會消失時間...


本來網站運作正常
但自從之前為了測試更改了系統時間
再改回來後,Chrome和Firefox就登不進去了

我檢查後發現是因為每次session都會重新產生
導致無法讀取上次產生的session(但不知為何IE卻可以登入)

取消了跟GC有關的設定後就可以登入了
但那些設定是為了減少伺服器負擔
而且我搞不懂為什麼那些設定會導致每次session都重新產生
況且之前是可以運作的,之前我並沒有修改到跟session有關的部分
如果可以希望能真的找到為什麼會如此,以及如何解決

這是PHP端建立session的語法
(前人留下的,原作者是 [email protected])

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());
}
}
}

謝謝各位
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.18.8
※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1416296801.A.CB2.html
※ 編輯: Peruheru (220.134.18.8), 11/18/2014 17:16:48
MOONRAKER: 何不session_start()就好 11/18 18:13
MOONRAKER: php自己就能管理session 搞這麼複雜看不出來有什麼意義 11/18 18:14
alog: 你要知道..接某些前人的程式會讓你匪夷所思 11/18 18:15
alog: 不過我是不曉得session會造成多大的負擔 11/18 18:16
alog: 你session丟給memcache 11/18 18:16
alog: 然後每個request做控管就不會有異常消耗的狀況 11/18 18:16
MOONRAKER: 感覺像是php4時代留下來的hack 11/18 20:17
up9cloud: 你可以嘗試把session_save_path()底下的session通通清光 11/18 22:11
up9cloud: 再試試看. php session簡單說就是把變數serilize存成 11/18 22:14
up9cloud: 檔案,然後不斷讀寫...的確會有效能問題. 11/18 22:15
up9cloud: 這位作者把session.gc_probability調成20..看來你們網站 11/18 22:16
up9cloud: loading應該蠻重的..真的可以考慮丟到memcache 11/18 22:18
gname: 建議檢查一下所有的時間設定...最好印出來看~ 11/19 09:15
Peruheru: 系統時間跟時間伺服器同步了,php印出來的時間也是 11/19 23:41
Peruheru: 還有什麼時間可能受影響可以調的呢? 11/19 23:42

你可能也想看看

搜尋相關網站