ログイン後の前のページへのリダイレクト
ログイン成功後にユーザーを目的の宛先にリダイレクトできないことは、イライラする障害となる可能性があります。特定のテクニックを組み込んで潜在的な落とし穴に対処することで、この問題を効果的に解決できます。
解決策: $_GET 変数を使用する
一般的なアプローチは、$ を使用することです。 _GET 変数を使用してユーザーの現在のページを取得します。ユーザーをログイン ページにリダイレクトする場合、この変数を追加すると、認証が成功した後にスクリプトが目的の宛先を取得できるようになります。たとえば、ユーザーが記事を読んでコメントを残そうとした場合、コメント セクションの URL (comment.php?articleid=17 など) が $_GET 変数を介してログイン ページに渡される必要があります。
実装:
コード内provided:
login.php: 現在のページを $_GET パラメータとして使用してログイン ページにユーザーを送信します:
header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));
login-check.php: $_POST['location'] 変数から宛先 URL を取得します:
$redirect = NULL; if($_POST['location'] != '') { $redirect = $_POST['location']; }
ログインが成功した場合、ユーザーを宛先 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(); }
注意事項:
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3