ホームページ >バックエンド開発 >PHPチュートリアル >jQuery Validate リモート メソッドで間違ったユーザー名の可用性エラーが表示されるのはなぜですか?

jQuery Validate リモート メソッドで間違ったユーザー名の可用性エラーが表示されるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-23 15:10:18200ブラウズ

Why Does My jQuery Validate Remote Method Show the Wrong Username Availability Error?

jQuery Validate リモート メソッド: ユーザー名検証のトラブルシューティング

jQuery Validate のリモート メソッドを使用してデータベースにユーザー名が存在するかどうかを確認する場合、特定のシナリオ誤ったエラーメッセージが表示される可能性があります。この記事では、ユーザー名が存在しないにもかかわらず、「このユーザー名はすでに使用されています」というエラー メッセージが表示される一般的な問題について説明します。

リモート メソッドについて

リモート メソッドサーバー側スクリプトから取得したデータに対してフィールドを検証できます。 2 つのパラメータを取ります:

  • url: 検証を実行するスクリプトの URL
  • type: HTTP リクエスト メソッド (通常は GET または POST)

実装例

提供されているこのコードでは、次の 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 スクリプトは、POST リクエストからユーザー名を取得し、それがデータベースに存在するかどうかを確認します:

<?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);
?>

問題の解決

元の PHP スクリプトは true を返しましたユーザー名が存在することを示しますが、その結果もエコーされるため、jQuery Validate に誤ったエラー メッセージが表示されます。

修正された 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;
?>

By return Only PHP スクリプト内のブール値 true または false により、jQuery Validate でユーザー名が存在するかどうかを正しく判断できるようになりました。

以上がjQuery Validate リモート メソッドで間違ったユーザー名の可用性エラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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