我有一些保存的會話。如果用戶關閉瀏覽器窗口或單個選項卡或導航離開頁面,我想銷燬所有會話。有什麼辦法可以做到這一點?如何在用戶關閉瀏覽器窗口或在php中導航離開頁面時銷燬會話?
回答
那麼,我使用CodeIgniter爲我的所有項目。 CodeIgniter具有使用cookie存儲數據的會話類。我可以在應用程序配置中設置cookie超時。將其設置爲0將使cookie僅在頁面打開時保留最後,並且在瀏覽器中關閉頁面的所有選項卡時,cookie將自動刪除。
如果您不想使用其他框架,那麼您可以使用cookie來保存僅在用戶關閉瀏覽器選項卡之前保留的會話數據。使用setcookie寫入cookie數據,並從$_COOKIE
變量中讀取它。
餅乾不會保存會話數據 –
哇,這很混亂!你知道會話和cookie之間的區別嗎? – animuson
Cookie保存PHPSESSID,這是將用戶鏈接到他的服務器存儲的會話數據的鏈接。 –
類似唐尼的答案,但不是使用笨,你可以告訴內置的Session類改變PHPSESSID
cookie來在瀏覽器關閉時屆滿:
session_set_cookie_params(0);
這有session_start()
之後被稱爲每個頁面都使用它(否則它會從ini參數session.cookie_lifetime
重置爲默認值)。
我很想知道爲什麼我得到了一個downvote。如果PHPSESSID cookie過期,則當前用戶失去他的會話。 –
現在所有現代標籤式瀏覽器都非常複雜。所以,你只能依靠會話超時。雖然沒有什麼大不了的。你確定你確實需要這個嗎?這會讓用戶感到痛苦。
當瀏覽器關閉時,你不能銷燬會話!會話需要一個服務器端指令被銷燬。您可以將會話設置爲在閒置一段時間後被銷燬。
學習手冊?什麼是一般性建議,-1。 –
不,這不是一個普通的建議,答案是給出的,並且是一個參考。 –
第一套$config['sess_expiration'] to 0
然而,這具有這實際上持續2年來,由於代碼在system/libraries/Session.php
文件中的cookie的作用
我們設置下一個$config['sess_expiration'] to -1
這只是沒有爲我工作的句號。當我登錄它時保存了會話變量,然後當我進入下一頁時,它已經消失。
- 1. 如何在mac os中關閉瀏覽器時銷燬會話?
- 2. 在PHP中,如何銷燬會話並關閉窗口?
- 3. 銷燬瀏覽器或標籤頁上的會話關閉
- 4. 銷燬或取消會話時,用戶關閉瀏覽器不點擊註銷
- 5. 如何在瀏覽器中關閉瀏覽器以銷燬會話和cookie 4
- 6. 如何在窗口關閉時銷燬會話?
- 7. 在Rails中,如何關閉瀏覽器時如何銷燬會話?
- 8. 在頁面離開時銷燬PHP會話
- 9. 關閉銷燬PHP會話
- 10. 當瀏覽器選項卡關閉時銷燬會話
- 11. 當你離開頁面時,在cakephp中銷燬會話?
- 12. 當瀏覽器窗口關閉時自動註銷用戶 - salesforce
- 13. 使用PHP和AJAX在瀏覽器關閉時銷燬用戶令牌
- 14. 如何在用戶關閉瀏覽器而不註銷時終止會話
- 15. 銷燬存儲在窗口關閉的數據庫中的用戶會話
- 16. Rails 3:用戶關閉瀏覽器或頁面後終止用戶會話?
- 17. GWT:如何在關閉瀏覽器時關閉會話
- 18. AngularJS在關閉瀏覽器窗口時自動註銷
- 19. 如何在用戶試圖離開頁面窗口或關閉標籤時顯示彈出窗口?
- 20. 當用戶關閉窗口或瀏覽器時,jquery任務
- 21. 如何在瀏覽器關閉時自動註銷用戶?
- 22. 如何在瀏覽器關閉時自動註銷用戶?
- 23. 如何在瀏覽器中關閉一個會話關閉Django
- 24. 如何在瀏覽器關閉時關閉vaadin會話但保持http會話?
- 25. 如何在斷開連接或關閉瀏覽器後註銷用戶?
- 26. 在php中銷燬會話
- 27. 如何在離開網站時安全地銷燬會話?
- 28. 如何在關閉窗口時刪除/銷燬商店extjs 4
- 29. 如果Chrome瀏覽器不自動執行操作,在瀏覽器關閉時如何銷燬或取消設置Chrome中的PHP會話?
- 30. 如何在瀏覽器中更改網址而不導航離開頁面?
如果用戶在同一會話中打開了多個窗口/選項卡,會發生什麼情況? – sth
你有太多的變數可以解釋它們。簡單而簡單,不用擔心。 – animuson
如果您不使用內置的會話系統,您也可以執行此操作。或者,如果您在每個頁面上通過POST或GET傳遞變量,您可以將其關聯到單個「活動標籤」。 –