わかりましたので、ログイン用のリダイレクト機能があります。いくつかのコードを次に示します。
if ($sukces) {
$_SESSION['id'] = $row['id'];
if($_POST['location'] != '') {
header('Refresh: 1;url='.$_POST['location'].'');
echo message('You have logged in.<br>Press <a href="'.$_POST['location'].'">here</a> if you are not returned automatically.');
return false;
} else {
header("Location: /home");
}
} else {
// login failed
exit();
}
if($_POST['location'] != '') {
header('Refresh: 1;url='.$_POST['location'].'');
} else {
header("Location: /account");
}
<form action="?page=login" method="post">
<input type="hidden" name="location" value="<?=isset($_REQUEST['redirect']) ? htmlspecialchars($_REQUEST['redirect']) : ''?>">
E.g:
http://localhost/?page=login&redirect=%2Fforum%2F%3Faction%3Dpost%26boardid%3D1
問題は、間違ったログイン資格情報を入力すると、場所の入力フィールドの値が空になることです。ただし、間違って入力してから右に入力すると、リダイレクトされません。何故ですか?リダイレクト URL を保持するにはどうすればよいですか?