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

Barbara Streisand
發布: 2024-11-01 04:45:02
原創
745 人瀏覽過

How to Redirect Users Back to Their Previous Page After Successful Login?

成功登入後重新導向到上一頁

當使用者登入網站時,通常希望將他們重新導向回之前瀏覽的頁面。這提供了無縫的用戶體驗,並且無需登入後手動導航。

為了實現此目標,常見的方法是將使用者目前頁面 URL 作為 $_GET 變數傳遞到登入表單。例如,如果使用者在文章頁面「comment.php?articleid=17」上嘗試發表評論,則 URL 將包含目前位置。

登入頁面 (login.php)然後應該檢查 $_GET['location'] 是否存在。如果存在,頁面可以在成功登入後將使用者重新導向到該特定 URL。實作方法如下:

在login.php中:

<code class="php">echo '<input type="hidden" name="location" value="';
if(isset($_GET['location'])) {
    echo htmlspecialchars($_GET['location']);
}
echo '" />';</code>
登入後複製

此隱藏輸入欄位儲存目前頁面 URL 並將其與登入表單提交一起傳送。

在login-check.php中:

<code class="php">session_start();

$redirect = NULL;
if(isset($_POST['location']) && $_POST['location'] != '') {
    $redirect = $_POST['location'];
}

if((empty($username) OR empty($password) AND !isset($_SESSION['id_login']))) {
    $url = 'login.php?p=1';
    if(isset($redirect)) {
        $url .= '&amp;location=' . urlencode($redirect);
    }
   header("Location: " . $url);
   exit();
}
elseif (!user_exists($username,$password) AND !isset($_SESSION['id_login'])) {
    $url = 'login.php?p=2';
    if(isset($redirect)) {
        $url .= '&amp;location=' . urlencode($redirect);
    }
   header("Location:" . $url);
   exit();
}
elseif(isset($_SESSION['id_login'])) {
    if($redirect) {
        header("Location:". $redirect);
    } else {
        header("Location:login.php?p=3");
    }
    exit();
}</code>
登入後複製

在這個login-check.php中腳本:

  1. 它檢查$_POST['location' ] 變量,如果存在則將其分配給$redirect。
  2. 腳本處理登入錯誤並重定向到登入頁面使用適當的錯誤參數。
  3. 成功登入後,它會檢查重定向 URL 並將使用者重新導向到該頁面(如果存在)。否則,它會重定向到login.php,並顯示登入成功的訊息。

這個機制可以平滑地重新導向到使用者登入前瀏覽的頁面,增強使用者體驗並簡化登入流程。

以上是登入成功後如何將使用者重新導向回上一頁?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!