[請益] session在chrome和FF會消失

看板PHP作者 (還在想)時間11年前 (2014/11/18 15:46), 11年前編輯推噓0(0015)
留言15則, 5人參與, 最新討論串1/1
本來網站運作正常 但自從之前為了測試更改了系統時間 再改回來後,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()); } } } 謝謝各位 -- ※ 發信站: 批踢踢實業坊(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

11/18 18:13, , 1F
何不session_start()就好
11/18 18:13, 1F

11/18 18:14, , 2F
php自己就能管理session 搞這麼複雜看不出來有什麼意義
11/18 18:14, 2F

11/18 18:15, , 3F
你要知道..接某些前人的程式會讓你匪夷所思
11/18 18:15, 3F

11/18 18:16, , 4F
不過我是不曉得session會造成多大的負擔
11/18 18:16, 4F

11/18 18:16, , 5F
你session丟給memcache
11/18 18:16, 5F

11/18 18:16, , 6F
然後每個request做控管就不會有異常消耗的狀況
11/18 18:16, 6F

11/18 20:17, , 7F
感覺像是php4時代留下來的hack
11/18 20:17, 7F

11/18 22:11, , 8F
你可以嘗試把session_save_path()底下的session通通清光
11/18 22:11, 8F

11/18 22:14, , 9F
再試試看. php session簡單說就是把變數serilize存成
11/18 22:14, 9F

11/18 22:15, , 10F
檔案,然後不斷讀寫...的確會有效能問題.
11/18 22:15, 10F

11/18 22:16, , 11F
這位作者把session.gc_probability調成20..看來你們網站
11/18 22:16, 11F

11/18 22:18, , 12F
loading應該蠻重的..真的可以考慮丟到memcache
11/18 22:18, 12F

11/19 09:15, , 13F
建議檢查一下所有的時間設定...最好印出來看~
11/19 09:15, 13F

11/19 23:41, , 14F
系統時間跟時間伺服器同步了,php印出來的時間也是
11/19 23:41, 14F

11/19 23:42, , 15F
還有什麼時間可能受影響可以調的呢?
11/19 23:42, 15F
文章代碼(AID): #1KQlbXoo (PHP)
文章代碼(AID): #1KQlbXoo (PHP)