ホームページ >データベース >mysql チュートリアル >ユーザー名の可用性をチェックするときに、jQuery のリモート メソッドの検証が常に失敗するのはなぜですか?

ユーザー名の可用性をチェックするときに、jQuery のリモート メソッドの検証が常に失敗するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-24 01:08:11620ブラウズ

Why Does My jQuery Validate Remote Method Always Fail When Checking Username Availability?

jQuery Validate: リモート メソッドを使用してユーザー名の可用性を確認する

この質問では、ユーザーは jQuery.validate のリモート メソッドを使用してユーザー名の存在を検証しようとします。ただし、ユーザー名が取得されていない場合でも、検証が常に失敗するという問題が発生します。

元のコード

jQuery:

$("#signupForm").validate({
    rules: {
        username: {
            required: true,
            minlength: 3,
            remote: "check-username.php"
        }
    },
    messages: {
        username: {
            remote: "This username is already taken! Try another."
        }
    }
});

check-username.php:

<?php
require_once "./source/includes/data.php";
header('Content-type: application/json');

$name = mysql_real_escape_string($_POST['username']);

$check_for_username = mysql_query("SELECT username FROM mmh_user_info WHERE username='$name'");

if (mysql_num_rows($check_for_username) > 0) {
    $output = true;
} else {
    $output = false;
}
echo json_encode($output);
?>

問題

元のコードはリモートを使用していましたメソッドは常に true を返し、ユーザー名が

解決策

ユーザーは PHP コードを次のように更新することで問題を解決しました:

<?php
require_once "./source/includes/data.php";
header('Content-type: application/json');
$request = $_REQUEST['username'];

$query = mysql_query("SELECT * FROM mmh_user_info WHERE username ='$username'");
$result = mysql_num_rows($query);
if ($result == 0) {
    $valid = 'true';
} else {
    $valid = 'false';
}
echo $valid;
?>

説明

更新された PHP コード:

  • $request 変数を使用して、 request.
  • データベースにクエリを実行して、指定されたユーザー名のレコード数をカウントします。
  • レコードが見つからない場合は、$valid を 'true' に設定し、ユーザー名が使用可能であることを示します。

以上がユーザー名の可用性をチェックするときに、jQuery のリモート メソッドの検証が常に失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。