jquery で検証プラグインを使用すると、奇妙な問題が発生します。これは数回尋ねられたようですが、私の問題に対する答えが見つかりません。フォームがあり、電子メールが既に入力されているかどうかを確認しようとしています。入力されている場合、ユーザーはフォームを送信できないはずです。さまざまな変数を出力するために FirePHP を使用しています。ここで、クエリの戻り値が常に「1」であることに気付きました (これは間違っています)。ただし、(PhpMyAdmin を使用して) データベースに手動でクエリを実行すると、正しい答え (「0」) が表示されます。
これが私のjsです:
// validate signup form on keyup and submit
$("#register").validate({
rules: {
......
email: {
required: true,
email: true,
remote: "check_email.php" , async:false
},
},
messages: {
......
email: {required: "Please enter an email address", email: "Please enter a valid email address", remote: "This email is already registered" },
}
}
});
});
そして、これがデータベース接続後の私のphpです...
$form_email = $_GET['email'];
fb($form_email);
$sql = "SELECT COUNT(*) AS num_rows FROM users WHERE email = " . "'" . $form_email . "'";
fb($sql);
$result = $conn->query($sql);
fb($result->num_rows);
if ($result->num_rows == 0) {
echo 'true';
fb("true");
} else {
echo 'false';
fb("false");
}
存在しないメールアドレスを入力しても、常に「1」が返ってきます。
私も返してみました
echo json_encode('true');
うまくいくかもしれないどこかを読んだので、助けにはなりませんでした。PHP で応答が常に間違っているのはなぜですか?