「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHPでログイン後に前のページにリダイレクトするにはどうすればよいですか?

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

2024 年 11 月 8 日に公開
ブラウズ:482

How to Redirect to Previous Page After Login in PHP?

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

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

解決策: $_GET 変数を使用する

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

実装:

コード内provided:

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

    header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));
  2. login-check.php: $_POST['location'] 変数から宛先 URL を取得します:

    $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 が安全であり、危険なものではないことを確認してください。悪意のあるコンテンツが含まれています。
  • urlencode を使用します: URL を渡すときに urlencode() を使用します。特殊文字を適切に処理するために $_GET パラメーターとして使用します。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3