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

PHPでログイン後に前のページにリダイレクトするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-01 00:59:01
オリジナル
550 人が閲覧しました

How to Redirect to Previous Page After Login in PHP?

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

ログイン成功後にユーザーを目的の宛先にリダイレクトできないことは、イライラする障害となる可能性があります。特定のテクニックを組み込み、潜在的な落とし穴に対処することで、この問題を効果的に解決できます。

解決策: $_GET 変数の利用

一般的なアプローチは、$ を利用することです。 _GET 変数を使用してユーザーの現在のページをキャプチャします。ユーザーをログイン ページにリダイレクトする場合、この変数を追加すると、認証が成功した後にスクリプトが目的の宛先を取得できるようになります。たとえば、ユーザーが記事を読んでコメントを残そうとした場合、コメント セクションの URL (comment.php?articleid=17 など) が $_GET 変数を介してログイン ページに渡される必要があります。

実装:

コード内提供:

  1. login.php: $_GET パラメータとして現在のページを使用してユーザーをログイン ページに送信します:

    header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));
    ログイン後にコピー
  2. login-check.php: から宛先 URL を取得します。 $_POST['location'] 変数:

    $redirect = NULL;
    if($_POST['location'] != '') {
     $redirect = $_POST['location'];
    }
    ログイン後にコピー
  3. ログインが成功した場合、ユーザーを宛先 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();
    }
    ログイン後にコピー

注意事項:

  • 宛先 URL を検証します: 宛先 URL を確認してください安全で悪意のあるものは含まれていませんcontent.
  • urlencode を使用します: 特殊文字を適切に処理するには、URL を $_GET パラメーターとして渡すときに urlencode() を使用します。

以上がPHPでログイン後に前のページにリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート