[英]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.