登入後重新導向到上一頁
成功登入後無法將使用者重新導向到其預期目的地可能是令人沮喪的障礙。透過結合特定的技術並處理潛在的陷阱,可以有效地解決這個問題。
解決方案:利用 $_GET 變數
常見的方法是利用 $ _GET 變數來擷取使用者目前的頁面。將它們重新導向到登入頁面時,附加此變數允許腳本在成功身份驗證後檢索所需的目標。例如,如果使用者正在閱讀一篇文章並嘗試發表評論,則評論部分的 URL(例如 comment.php?articleid=17)應透過 $_GET 變數傳遞到登入頁面。
實作:
在提供的程式碼中:
login.php:將用戶🎜>將用戶傳送至登入目前頁面為$_GET 參數的頁面:
header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));
login-check.php: 從$_POST['location' 擷取目標URL ]變數:
$redirect = NULL; if($_POST['location'] != '') { $redirect = $_POST['location']; }
如果登入成功,將使用者重新導向至目標URL 或預設頁面(如果未指定):
if(isset($_SESSION['id_login'])) { // if login is successful and there is a redirect address, send the user directly there if($redirect) { header("Location:". $redirect); } else { header("Location:login.php?p=3"); } exit(); }
注意事項:
以上是PHP登入後如何重新導向到上一頁?的詳細內容。更多資訊請關注PHP中文網其他相關文章!