0

私はこのコードを持っています:

<?php
if ( isset($_POST['username']) === true){
    echo 'Username is set';
    if ( $_POST['username'] == "" ){
        echo '<br> Username is empty';
    } else {
        echo '<br>Username is not empty';
    }
}
if ( isset($_POST['password']) === true ){
    echo 'Password is set';
    if ( $_POST['password'] == "" ){
        echo '<br> Password is empty';
    } else {
        echo '<br>Password is not empty';
    }
} 
?>

そして私はフォームを持っています:

<input type="text" name="username" placeholder="Username" id="username" onKeyUp="javascript:check_username();">
<input type="password" name="password" placeholder="Password" id="password" onKeyUp="javascript:check_password();">

関数は ajax を呼び出してユーザー名/パスをチェックし、php ファイルを実行した後、入力を空のままにした場合の出力は次のようになります。

ユーザー名が設定されています ユーザー名が空です

パスワードが設定されています パスワードは空ではありません

何故ですか??

4

3 に答える 3

0

「これは、入力を空のままにしたときの出力です」と言っている場合、それは何をすべきでしょうか? 空のままにしている場合は、「フィールドが空です」と表示します。

コードが表示されないことを期待していた場合:

Username is set

フィールドを空のままにしていたため、値がフィールドに設定されているかどうかに関係なく、フォームはフォームの各フィールドに対して $_POST['field'] 値を送信していることを知りたい場合があります (無効属性)。

print_r($_POST);またはブラウザのデバッグ ツールを使用して、この PHP ページに渡される値を表示してみてください。

于 2013-05-07T20:00:21.623 に答える
0

パスワードの値は何ですか? その値が実際に空であると確信していますか?

入力を囲むコードを投稿できますか? フォーム全体を投稿しませんでした。<input>タグを閉じていないため、送信前にフォームがクリアテキストを値に追加している可能性があります。

于 2013-05-07T20:02:26.733 に答える
0
if(!empty($_POST)) {
foreach($_POST as $key => $val)
{
    ${$key} = $ val;
}

if(empty($username)) {
    echo "Username empty";
} else {
    echo $username;
}

if(empty($password)) {
    echo "Password empty";
} else {
    echo $password;
}
}

これが行うことは、フォーム入力フィールドの name 属性から変数を作成することです

于 2013-05-07T20:02:49.633 に答える