2014-09-23 56 views
0

我想知道PHP會話存儲在服務器內存多長時間。如果用戶登錄(在服務器中設置會話變量),並且他讓瀏覽器長時間保持打開狀態,假設30天,並在第31天重新加載頁面? Ca瀏覽器訪問會話變量(瀏覽器仍然有會話cookie)?php會話在服務器中存儲多久?

+0

已設置它是可配置的。請參閱http://stackoverflow.com/questions/8311320/how-to-change-the-session-timeout-in-php – folkol 2014-09-23 15:57:26

+0

HTTP連接不是有狀態的。他們打開連接,獲取一些文件,然後關閉它。服務器不知道在這30天內瀏覽器發生了什麼。 – DanFromGermany 2014-09-23 15:57:35

回答

5

默認php.ini將會話過期時間設置爲30分鐘。

查閱這些設置:的session.gc_maxlifetime和session.cookie_lifetime

只要有瀏覽器存儲cookie的,它不會,如果它被關閉或打開時事。

如果你想存儲可以說,30天的會話,你可以添加:

ini_set('session.gc_maxlifetime', 30*24*60*60); 
ini_set('session.cookie_lifetime', 30*24*60*60); 
+0

謝謝您的回答。我還有一個疑問,即如果瀏覽器在30分鐘後使用會話cookie發送請求以訪問會話變量會怎麼樣?我很困惑。 – user3370495 2014-09-23 16:14:41

+0

@ user3370495會話由服務器管理。因此,一旦會話過期,服務器將不再識別cookie,即使用戶仍然擁有它。 – 2014-09-23 16:18:27

+0

在cookie_lifetime期間(可以說30分鐘)之後,cookie將過期,瀏覽器將自動刪除它,這意味着會話數據將丟失。或者,當gc_maxlifetime到期時,垃圾收集器應該從服務器中刪除會話信息。 – 2014-09-23 16:20:13

0

通常你會代碼爲您的會話處理代碼部分的函數一段時間之後到期會議,所以在這種情況下,我就不會不管多久,他們離開了那裏瀏覽器中打開