如何將使用者登入後重新導向回上一頁?

Mary-Kate Olsen
發布: 2024-11-02 04:47:02
原創
308 人瀏覽過

How to Redirect Users Back to the Previous Page After Login?

登入後重新導向到上一頁

當使用者登入網站時,通常希望將他們重新導向到他們登入的頁面在重新導向回他們登入的頁面登入之前正在查看。這可確保無縫的瀏覽體驗並允許使用者繼續其任務。

要實現此重定向,常見的方法是將使用者目前頁面 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板