ホームページ >バックエンド開発 >PHPチュートリアル >ログインに成功した後にユーザーを前のページにリダイレクトするにはどうすればよいですか?
ユーザーが 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 .= '&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 .= '&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 スクリプト内:
このメカニズムにより、ユーザーがログイン前に閲覧していたページへのスムーズなリダイレクトが可能になり、ユーザー エクスペリエンスが向上し、ログイン プロセスが簡素化されます。
以上がログインに成功した後にユーザーを前のページにリダイレクトするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。