2014-06-19 114 views
0

我正在使用php會話編寫一個登錄頁面。問題是,登錄後,如果我退出沒有退出的頁面,我可以在下次登錄時進入頁面。我使用了一個包含用戶名的會話變量,並且如果會話存在,我會在每個頁面上檢查它。我發現我之所以能夠在沒有登錄的情況下進行操作,是因爲會話尚未解除。任何人都可以告訴我該怎麼做?我想要一個簡單的解決方案,當瀏覽器關閉時瀏覽器會自動註銷,或者不允許用戶退出而無需退出?頁面可以在沒有登錄驗證的情況下登錄

+0

實現對會話超時。 – Barmar

+0

Duplicate:http://stackoverflow.com/questions/2201750/php-destroy-session-on-close-of-main-window –

+0

參見http://stackoverflow.com/questions/520237/how-doi-i -expire-a-php-session-after-30-minutes/1270960#1270960 – Barmar

回答

1

瀏覽器在整個瀏覽器進程退出時只會銷燬會話cookie。沒有可靠的方法來確定用戶是否/何時關閉了選項卡。有一個onbeforeunload處理程序可以附加到,並希望設法向服務器發出ajax調用以表示該標籤的關閉,但這不可靠。

如果用戶在您的網站上打開兩個或多個表格會怎麼樣?如果他們關閉了一個標籤,那麼即使用戶完全打算繼續使用您的網站,另一個標籤也會被有效註銷。

另請參考:

destroy session when broswer tab closed

+0

我不認爲你可以在'onbeforeunload'中做一個AJAX調用。 – Barmar

相關問題