登入後重新導向到上一頁
當使用者登入網站時,通常希望將他們重新導向到他們登入的頁面在重新導向回他們登入的頁面登入之前正在查看。這可確保無縫的瀏覽體驗並允許使用者繼續其任務。
要實現此重定向,常見的方法是將使用者目前頁面 URL 作為查詢字串參數傳遞登入表格。例如:
<code class="php">header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));</code>
此程式碼將「位置」參數新增至登入頁面 URL。此參數的值是目前頁面的 URL,經過編碼以確保其與 URL 參數相容。
在登入表單中,新增一個隱藏輸入欄位來儲存「位置」參數:
<code class="php">echo '<input type="hidden" name="location" value="'; if (isset($_GET['location'])) { echo htmlspecialchars($_GET['location']); } echo '" />';</code>
提交登入表單時將填入此輸入欄位。
在login-check.php腳本中,檢查POST資料中是否有「location」參數。如果是,則將其值儲存在$redirect 變數中:
<code class="php">$redirect = NULL; if ($_POST['location'] != '') { $redirect = $_POST['location']; }</code>
如果登入成功,則將使用者重新導向到$redirect URL 而不是預設目的地(例如「index.php」) :
<code class="php">if (isset($redirect)) { header("Location:" . $redirect); } else { header("Location:login.php?p=3"); }</code>
安全注意事項
在重定向使用者之前驗證$_GET['location'] 參數非常重要。這可以防止惡意使用者將使用者重新導向到有害的 URL。驗證參數的一種方法是檢查它是否以網站的網域名稱開頭。
以上是如何將使用者登入後重新導向回上一頁?的詳細內容。更多資訊請關注PHP中文網其他相關文章!