2012-05-09 137 views
0

我正在開發php項目。所有我想這樣做,當我關閉瀏覽器如此未設置或銷燬會話。如何在mac os中關閉瀏覽器時銷燬會話?

在這裏,我也嘗試

的ini_set( 'session.cookie_lifetime',0)和session_set_cookie_params(0)在session_start之前();

它的正常工作在Windows操作系統而不是在MAC OS。

在此先感謝。

+0

你使用什麼瀏覽器? –

+0

鉻和火狐 – nic

+0

你**也試過**代碼。那之前你曾嘗試過什麼?你打算在技術上做什麼?你想使用哪些cookie規範的功能?你知道有一個cookie規範嗎? – hakre

回答

4

會話有兩部分。

  1. 存儲在服務器
  2. 客戶

有刪除服務器上的數據在瀏覽器關閉時沒有可靠的方法與會話ID該Cookie上的數據。每個理智的會話系統都會定期清理舊數據(如果N分鐘內沒有關聯瀏覽器的標誌)。

在瀏覽器上該Cookie通常被髮送而不的到期時間,這意味着當瀏覽器退出時將過期。這可靠地工作。

如果不管你有做你想在Windows客戶端,那麼我會認爲你是在談論到期的餅乾。

這將發生在Mac以及Windows。我最好的猜測是你的測試存在問題。在Windows上,應用程序通常在最後一個窗口關閉時退出。在Mac上,應用程序通常要求您明確地退出它們,但如果您只關閉最後一個窗口,則應保持打開狀態。

爲了確保cookie過期,您必須明確退出瀏覽器(通過從菜單中選擇退出或右鍵單擊並選擇Dock中圖標的退出)。

有沒有辦法爲,當最後一個窗口已關閉服務器來檢測和遠程終止會話。

1

它在Windows

工作正常,這或多或少意味着它的工作原理。

但不能在Mac OS

工作,這可能是一種誤解。您需要關閉所有瀏覽器窗口,以便瀏覽器銷燬會話Cookie。很可能您只關閉了多個窗口中的一個,並且至少有一個瀏覽器實例仍然存在(您可以在終端窗口中使用top來檢查該類型的事情)。

相關問題