2015-08-27 113 views
-5

如果我複製URL,而在登錄模式,然後註銷後,我將其粘貼到地址欄,然後按回車它顯示的頁面。瀏覽地址欄

是否有任何可能的方式來知道,從瀏覽器的地址欄中的網址是什麼?

+1

對不起,我不想粗魯,但我不能理解由於英語質量差而導致的問題的含義。有什麼方法可以重新提出問題以便我們理解它嗎? –

+0

歡迎來到SO。你的意思是'location.href'?請詳細說明你在做什麼。例如,訪問[幫助]以查看如何提問。我編輯了你的問題 - 猜測你在問什麼。我試圖猜測你的意思。您可以使用'location.replace(url)'將前一頁面保留在歷史記錄外,並嘗試將頁面從緩存中移出。 – mplungjan

+0

你不需要知道用戶如何到達那裏。你應該檢查是否設置了他登錄的會話變量。 – Barmar

回答

0

地址欄是無關緊要的,如果有一個鏈接到另一個網址的網頁可能會發生同樣的事情。

所有應用程序的頁面需要檢查用戶是否登錄,他們顯示任何東西之前。登錄應該設置一個會話變量,並且每個頁面都應該檢查該變量。在下面我示例代碼,它重定向到登錄頁面,如果他們沒有登錄。

<?php 
session_start(); 
if (empty($_SESSION['username'])) { 
    header("Location: login.php"); 
    exit; 
} 

登出頁面應該做unset($_SESSION['username'])

+0

但是,如果頁面仍然在緩存中,它仍然會顯示頁面。 – mplungjan

+0

對此你可以做的不多。他還可以截取頁面的截圖並永久地看到它。 – Barmar

+0

如果當然。然而,有些方法(新窗口,會話如你所說,location.replace)可以提供一些幫助 – mplungjan

0

登錄或註銷時,您肯定正在訪問會話變量。 解決這個問題。只需在應用程序的每個網址上進行檢查,無論會話變量是否設置。

如果設置那麼從您的應用程序提供數據。如果沒有將請求重定向到登錄頁面。 另外,當用戶手動點擊註銷時,一定要清除/取消設置用戶會話的所有會話變量。 我希望它能工作

相關問題