我似乎無法在網上找到明確的答案,所以我在這裏問。什麼時候PHP會話結束?
當在.php腳本中使用session_start();
並保存一些值時,會話何時結束?那麼什麼時候這些值不能再次訪問?
我發現刷新頁面或以代碼方式停止會話會阻止它,並且可能的超時也會停止會話。但是,如何從網站導航並在一分鐘後返回?並關閉瀏覽器?
至於最後一個,在手機上,'關閉瀏覽器'是什麼意思?關閉標籤或甚至簡化網站?
我似乎無法在網上找到明確的答案,所以我在這裏問。什麼時候PHP會話結束?
當在.php腳本中使用session_start();
並保存一些值時,會話何時結束?那麼什麼時候這些值不能再次訪問?
我發現刷新頁面或以代碼方式停止會話會阻止它,並且可能的超時也會停止會話。但是,如何從網站導航並在一分鐘後返回?並關閉瀏覽器?
至於最後一個,在手機上,'關閉瀏覽器'是什麼意思?關閉標籤或甚至簡化網站?
如果您的會話值沒有鏈接到任何cookie,會話將在Windows瀏覽器關閉時結束。
如果您的會話變量來自cookie,會話將在cookie文件中指定的時間後結束。
在PHP中,會話使用類型爲session
的cookie。服務器端,會話信息不斷刪除。
要設置在PHP一個cookie的壽命,可以使用函數session_set_cookie_params中,在session_start之前:
session_set_cookie_params(3600,"/");
session_start();
對於離3600秒是一小時,2小時,3600×2 = 7200
但是它是一個會話cookie,瀏覽器可以讓它自己過期,如果你想保存更長的會話(比如記住登錄),你需要將數據保存在服務器端和客戶端的標準cookie中。
使用cookie時從站點導航不會中斷會話。
有可以有效地結束會話兩件事情:
session.gc_maxlifetime
中定義)沒有收到來自瀏覽器的具有會話會話cookie的請求並清除會話數據時。
簡短的答案取決於瀏覽器。 –
可能取決於您的服務器配置 – Carlos487