ウェブサイトの各ページにログインフォームがあり、どこからでもログインできます。私はlogin.phpファイルをフォームから参照しています( 'action'を使用して)。PHPログインシステムの問題ページからページへのエラーの送信
私は$_SERVER['HTTP_REFERER']
を使用して、ログインしたときとログアウトしたときと同じページにユーザーをリダイレクトします。
ログインに問題があった場合、ログインしようとしている同じページにどのようにエラーを送信できますか?私はこのように、$_GET
を使用してエラーを送信しようとしている:
// process the script only if the form has been submitted
if (array_key_exists('login', $_POST)) {
// Login code goes here...
// If there was a problem, destroy the session and prepare error message
else {
$_SESSION = array();
session_destroy();
header('Location: '.$_SERVER['HTTP_REFERER'].'?error');
exit;
}
しかし、問題は、ウェブサイト内のページの多くは、このdetails.php?mid=0172495
似ているということです。彼らはすでに$_GET
メソッドからの情報を受け取り、セキュリティ上の理由から別の$_GET
メソッドを使用することはできません...
どうして私はエラーに合格することができますか? おかげで...
$ _SERVER ['HTTP_REFERER']を使用すると、クライアントがリファラーをブロックできるので、悪い考えです。代わりに$ _SERVER ['PHP_SELF']を使用することを検討してください。 – Powerlord
PHP_SELFはログインスクリプトのアドレスを与え、彼はどこから来たのかを調べようとしています。一般的に正しい解決策は、$ _GET変数のアドレスをログインスクリプトに送信して、リファラーのブロック問題を回避することです。 –