1

エラーメッセージをフォームページに送り返すために利用できるオプションは何ですか?

login.phpに送信するフォームがありprocess.phpます。process.phpdb接続、検証などを処理します。エラーが発生した場合は、それをに戻しindex.phpます。

すなわち:

    } else {
    session_destroy();
    header("Location: /login");
    $error = "Sorry, that user name or password is incorrect. Please try again.";
}

これらは2つの異なるファイルであるため、エラーを設定および取得するために使用できる最良のオプションは何ですか?$_POST、、?$_GET_$_SESSION

4

4 に答える 4

4

あなたの特定のケースでは、与えられたコード$_SESSIONが最善の策です。すなわち:

$_SESSION['login_error_msg'] = "Sorry, that user name or password is incorrect. Please try again.";

次に index.php に戻り、そのセッション変数を何らかの方法でチェックする必要があります。

if( ! empty($_SESSION['login_error_msg']))
{
    //display the message however you want
    unset($_SESSION['login_error_msg'];
}
于 2012-08-15T23:58:39.983 に答える
2

$_SESSION を使用することをお勧めします。たとえば、更新について心配する必要はありません。また、$_GET を使用すると、宇宙のスカムがページを共有し、クエリ文字列を変更して、ページに表示される内容を台無しにすることができます。

$_SESSION があり、フォームごとに一意の識別子を作成する場合は、警告を表示し、警告が出力された後に $_SESSION 配列でその値を設定解除できます。

たとえば、それを設定する

$_SESSION['uniq_form']['warning'] = 'You got this wrong';

次のページ:

echo $_SESSION['uniq_form']['warning'];
unset($_SESSION['uniq_form']['warning']);
于 2012-08-16T00:00:36.057 に答える
2

簡単な解決策は、$_SESSION を使用することです。

プロセス.php:

<?php 
 else {
//session_destroy();

$_SESSION['error'] = "Sorry, that user name or password is incorrect. Please try again.";
header("Location: /login");
exit():
}

login.php:

<?php if(isset($_SESSION['error'])){
   echo $_SESSION['error'];
   unset( $_SESSION['error'];
}
于 2012-08-16T00:02:19.283 に答える
1

$_SESSION は、ユーザーにあまり多くの情報を公開しない最善の策だと思います。

于 2012-08-15T23:58:36.727 に答える