シナリオ: - ログインに成功すると、前のページにリダイレクトされます。 login.phpは、ユーザ名とパスワード、POSTをlogin_check.phpに転送する形式です。 login_check.phpは、ユーザーの認証を確認し、ユーザーに選択肢がない限り、ユーザーがデフォルトのページにリダイレクトされます(例:people's.php)。 .phpはログインしていないことを確認し、ログインに成功した後に戻れるようにログインページにリダイレクトします)。認証チェックの後、私は、ユーザーの選択肢がそれ以外があるかどうかをチェックし、login_check.phpでURLにhtmlエンティティがある場合、URLは自動的にデコードされますか?
echo '<input type="hidden" name="location" value="';
if(isset($_GET['location']))
{
echo htmlspecialchars($_GET['location']);
}
echo '"/>';
- :私もlogin.phpでフォームの隠しフィールドに訪問したURLを格納していますページをデフォルトに彼をリダイレクトします -
//REDIRECT USER TO PREVIOUS PAGE IF ANY
if(isset($_POST['location']))
{
header("location:".$_POST['location']);
exit;
}
私の質問: - 私はブラウザにURI people's.phpを記述する場合、それはプロムそれに応じてログインしてください。ログイン後に私にリダイレクトされます。人物&amp; s.phpページが見つからないというメッセージが表示されます(htmlspecialchars()を使用したエンコードされたURLは、上記のコード)。だから、URLのデコードがどこで行われ、なぜ他の方法で動作しないのですか(例:people&amplsqu; s.php)?
に
‘
バックをデコードする:PHPあなたはこれを使用することができます – rosemary