0

ログインシステムで作業していますが、エラーをフォームに送り返す方法を考えていましたか?
私は自分のプロジェクトでAJAXを個人的に使用するので、実際には問題にはなりませんが、純粋なphpでどのように可能か知りたいです。

これはフォームです...login.phpまたは他のページ:

<form method="post" action="proccessLogin.php">
    <label for="username">Username: </label>
    <input type="text" name="username" />
    <label for="password">Password: </label>
    <input type="password" name="password" />

    <input type="submit" name="submit" value="Go!" />
</form>

processLogin.php

<?php
    $username = $_POST['username'];
    $password = $_POST['password'];

    if(password is incorrect){
        // send error or add to an error array and then send it.
    }

    etc...
?>

これは私が書いたばかりのコードの一部であるため、明らかに完全ではありません。

ありがとうございました!

4

2 に答える 2

1

さて、あなたはreload_pageと$_GETエラーメッセージルートに行くことができます。

// Set your error messages here
$error_messages = "?password_error=true"
header("Location: http://localhost/url_to_form.php" + $error_messages);
exit();

フォームファイルに入ったら、既知のエラー変数をチェックします

$error_message_list = array( "password_error" => "Incorrect password" );
foreach ($_GET as $error_name => $error_value) {
    if ( in_array( $error_name, $error_message_list ) ) {
        $error_to_display[$error_name] = $error_message_list[$error_name];
    } else {
        $error_to_display[$error_name] = "";
    }
}

このチェックの後、HTMLのどこかに$error_to_display["password_error"]を配置します。echo '<label for="password">Password: ' . $error_to_display[ "password_error" ] . '</label>';

于 2012-07-09T09:16:05.533 に答える
1

セッションを使用してエラーを設定します。以下の変更されたコードを参照してください。

login.php

<?php
session_start();
?>
<form method="post" action="proccessLogin.php">
    <label for="username">Username: </label>
    <input type="text" name="username" />
    <?php if($_SESSION['u_name_error']) { echo $_SESSION['u_name_error']; unset($_SESSION['u_name_error']); }
    <label for="password">Password: </label>
    <input type="password" name="password" />
    <?php if($_SESSION['pass_error']) { echo $_SESSION['pass_error']; unset($_SESSION['pass_error']); }
    <input type="submit" name="submit" value="Go!" />
</form>

==============
proccessLogin.php
<?php
session_start();

    $username = $_POST['username'];
    $password = $_POST['password'];

    if(password is incorrect){
        // send error or add to an error array and then send it.
    }else{

        //set errors in session..
        $_SESSION['pass_error']= 'error message';
        $_SESSION['u_name_error']= 'error message';
        header("Location: login.php");
        die;
    }

?>
于 2012-07-09T11:27:28.293 に答える