防止用戶退出後返回
P粉029327711
2023-08-27 19:48:23
<p>我不希望用戶在登出後透過點擊後退按鈕返回到受保護的頁面。在我的登出程式碼中,我取消設定會話並重定向到登入頁面。但是,我認為瀏覽器正在快取該頁面,因此儘管會話因註銷而被破壞,但它仍然可見。 </p>
<p>我可以透過不允許瀏覽器快取來避免這種情況</p>
<p><code>header("快取控制", "無緩存,無存儲,必須重新驗證")</code></p>
<p>但這樣我就失去了瀏覽器快取的優勢。 </p>
<p>請提出一個更好的方法來實現這一目標。我覺得,一定有方法可以透過 javascript 用戶端來處理這個問題</p>
我也遇到了同樣的問題,花了一整天的時間來解決它, 最後修正如下:
在登入驗證腳本中,如果使用者經過驗證,則設定一個會話值,例如如下所示:
然後在使用者設定檔腳本中放入以下程式碼片段:
以上程式碼的作用是,只有且僅當
$_SESSION['status']
設定為"Active"
時,才會轉到使用者個人資料,並且僅當當使用者經過驗證時,此會話金鑰才會設定為「Active」... [注意否定[' ! '] 在上面的程式碼片段中]註銷程式碼大概應該如下:
希望這有幫助......!!!
在 PHP 中實作此功能,而不是在 javascript 中。
在每個頁面的頂部,檢查使用者是否已登入。如果沒有,他們應該被重定向到登入頁面:
如您所提到的,登出時,只需取消設定logging_in會話變量,然後銷毀會話:
如果使用者現在點擊返回,則沒有logged_in會話變數可用,且頁面將不會載入。