簡體   English   中英

使用PHP轉到僅成員頁面時的HTTP_REFERER重定向問題

[英]HTTP_REFERER redirect problem when going to a members only page w/ PHP

到目前為止,我的HTTP_REFERER重定向腳本在頁面上看起來像這樣,在用戶登錄之前,用戶無法訪問(submit.php):

session_start();
 if(!isset($_SESSION['user_id'])) {
 header("Location: login.php");
 exit();
}

這樣做很好,因為,顯然,如果他們嘗試轉到submit.php,則需要先登錄。 但是,一旦他們登錄,他們將再次被帶到login.php,因為login.php是他們訪問的最后一頁,而不是Submit.php(這應該是他們試圖訪問的正確頁面)。

對於只有在用戶登錄后才顯示的頁面,這只是一個問題。例如,如果他們進入/contact.php然后登錄,它將帶他們直接回到contact.php,但這是因為可以當他們注銷時也可以看到

我嘗試不使用HTTP_REFERER大部分時間使我感到頭痛。

我建議將URL保存到他們進入您的應用程序的會話中,這樣就在您重定向並檢查它們是否經過身份驗證之前。 然后,他們將點擊登錄並將其轉發到您會話中保存的頁面。 如果要保存登錄頁面,請確保不將其重定向到首頁或其他頁面。

檢查您是否在登錄頁面上,而不是重定向

if (!isset($_SESSION['user_id']) && ($_SERVER['SCRIPT_NAME'] != '/login.php')) {
    header(...);
}

.. show login form

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM