2013-09-26 120 views
1

這更多是一個概念性問題。但是我想知道什麼時候使用PHP來開始和結束Web會話。我非常肯定,當用戶首次請求任何具有session_start()函數的頁面時,會話開始。但是,當用戶導航到同一個選項卡中的另一個頁面時會話是否結束?在同一個瀏覽器的多個標籤頁和窗口中是否保留了相同的會話?要在瀏覽器關閉後保留會話,您是否必須使用Cookie?Web會話何時開始和結束?

+3

會話使用Cookie(一個 「會話cookie」,通常由瀏覽器處理方式不同)。你可以檢查它看看會話會持續多久。通常,瀏覽器關閉時瀏覽器會將其刪除。服務器通常會在上次訪問時將匹配數據保留一段時間。這些條件中的任何一個都會「結束」一個會話。 – Dave

回答

1
  1. 會議開始session.gc_maxlifetime和/或session.cookie_lifetime和/或做更多的事情後的第一session_start()
  2. 會話結束與PHP的會話垃圾收集器做的。
  3. Cookie是需要使用來使用會話,因爲PHP設置了一個包含用戶SESSID的cookie,並且瀏覽器會在每次請求時自動發送它。
    • 你可以刪除這個cookie,它撤銷你的訪問到會話,但會話數據仍然存在技術上直到超時到期和垃圾收集器運行。

Reference

+0

「PHP會話垃圾回收器需要做的更多事情」 - 什麼?你能澄清嗎? – Shoe