ホームページ >バックエンド開発 >PHPチュートリアル >jQuery Validate のリモート メソッドを使用してユーザー名が利用可能かどうかを確認する方法

jQuery Validate のリモート メソッドを使用してユーザー名が利用可能かどうかを確認する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-20 08:16:16707ブラウズ

How to Use jQuery Validate's Remote Method to Check for Username Availability?

ユーザー名の可用性を確認するための jQuery Validate リモート メソッド

jQuery Validate を使用すると、リモート メソッドを使用してユーザー名がデータベースにすでに存在するかどうかを検証できます。方法。以下に例を示します。

jQuery:

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

check-username.php:

<?php
header('Content-type: application/json');

$username = $_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;
?>

ユーザーがユーザー名を入力すると、jQuery はそのユーザー名を含むリクエストを check-username.php に送信します。 PHP スクリプトは、ユーザー名がデータベースに存在するかどうかを確認します。存在する場合は、ユーザー名が取得されたことを示す false が返されます。それ以外の場合は true を返します。

ただし、ユーザーが提供したコードでは、ユーザー名が存在するかどうかを確認しようとするとエラーが発生します。エラーは次の行から発生します:

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

mysql_query を使用する代わりに、SQL インジェクション攻撃を防ぐために準備されたステートメントを使用する必要があります:

$stmt = $mysqli->prepare("SELECT username FROM mmh_user_info WHERE username=?");
$stmt->bind_param("s", $name);

修正された PHP スクリプトは次のようになります。 :

execute()) {
    $stmt->store_result();
    if ($stmt->num_rows() > 0) {
        $output = true;
    } else {
        $output = false;
    }
} else {
    $output = false;
}

$stmt->close();
$mysqli->close();

echo json_encode($output);
?>

このスクリプトは、ユーザー名がデータベースに存在するかどうかを正確にチェックし、正しい応答を返すようになりました。 jQuery 検証。

以上がjQuery Validate のリモート メソッドを使用してユーザー名が利用可能かどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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