ホームページ >バックエンド開発 >PHPチュートリアル >ログインに成功した後にユーザーを前のページにリダイレクトするにはどうすればよいですか?

ログインに成功した後にユーザーを前のページにリダイレクトするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-01 04:45:02836ブラウズ

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

ログイン成功後の前のページへのリダイレクト

ユーザーが Web サイトにログインするとき、以前に閲覧していたページにリダイレクトして戻すことが望ましいことがよくあります。これにより、シームレスなユーザー エクスペリエンスが提供され、ログイン後の手動ナビゲーションの必要がなくなります。

この目標を達成するための一般的なアプローチは、ユーザーの現在のページ 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。