2015-12-21 120 views
0

我對PHP會話和會話cookie有些困惑。爲什麼PHP會話在清除瀏覽器的cookie時破壞

讓我通過舉一個www.example.com的例子來問我的問題。

當我登錄www.example.com時,它開始會話。所以我以本網站上的用戶身份登錄。

現在,當我在瀏覽器中清除Cookie時,會刪除所有瀏覽器cookie。

我的問題是 - 即使我沒有點擊註銷按鈕來銷燬會話,當我清除瀏覽器cookie時,www.example.com會話是否被銷燬?

這就解釋了我想問的問題。

清除瀏覽器cookie會自動銷燬PHP會話,即使您在網站上沒有執行任何操作會調用該功能來銷燬會話?

+0

清除瀏覽器cookie不會破壞服務器會話,但會刪除本地存儲的cookie中的會話ID –

回答

1

如果您仔細觀看,例如通過Chrome/Firefox等網絡檢查員,則可以看到PHPSESSIONID被設置爲cookie。所以如果你刪除了所有的cookies,那麼我想你也會刪除這個cookie,因此會話不知道要使用什麼ID。

0

它是Session的機制。你可以閱讀更多here

關於會話(通常是服務器會話)。該服務器通過會話ID節省服務器和retrives數據全部會議用戶數據從客戶端(由餅乾)。

第一次,客戶端向服務器發送請求。服務器沒有從這個請求中找到任何會話ID並響應一個正常的網頁,並且包括SET-COOKIE:SessionID = xyz

從現在開始,每個來自客戶端的請求將包括會話ID = xyz(通過Cookies)。

如果您清除Cookie,肯定是會話ID不見了

3

爲什麼PHP會話時破壞清晰的瀏覽器的cookie

後清除Cookie PHP不破壞會話,它只是不能接受的session id了(存儲在cookie中),所以會話數據之間的鏈接,當前用戶連接丟失。 PHP稍後會破壞會話,具體取決於其配置。

請問清除瀏覽器Cookie自動銷燬PHP會話甚至 當你沒有一個網站,將調用 功能破壞會議上做了什麼?

不,不。 PHP對會話生存期有限制(請參閱php.ini,session.gc_maxlifetimesession.cookie_lifetime),它們基本上定義了會話生存期。除官方手冊外,還有這些設置如何影響會話壽命的good explanation

相關問題