ホームページ >バックエンド開発 >PHPチュートリアル >jQuery Validate のリモート メソッドを使用してユーザー名が利用可能かどうかを確認する方法
ユーザー名の可用性を確認するための 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 サイトの他の関連記事を参照してください。