$_SERVER['HTTP_REFERER']
ユーザーがログインしようとしたときにエラー (パスワードが間違っているなど) を受け取った場合、リファラーが同じログイン ページになるため、使用は危険です。ユーザーをログイン ページにリダイレクトする前にセッション変数内にバック URL を保存し、ログインに成功したら、保存されているバック URL にリダイレクトする必要があります。
たとえば、を保護する必要があるとpage.php
します。ファイルの先頭に次のようなものを含めることができます。
if (empty($_SESSION['user'])) {
$_SESSION['backURL'] = $_SERVER['REQUEST_URI'];
header('Location: login.php');
exit;
}
次に、ユーザーが正常にログインした後、$_SESSION['user']
変数を設定し、保存した URL にリダイレクトしてから、ログイン ページ (またはバック URL が保存されていない場合はサイトのルート) に送信することができます。理由はともかく):
$backURL = empty($_SESSION['backURL']) ? '/' : $_SESSION['backURL'];
unset($_SESSION['backURL']);
header('Location: ' . $backURL);
exit;