jQuery 验证远程方法来检查用户名可用性
使用 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'");
您应该使用准备好的语句来防止 SQL 注入攻击,而不是使用 mysql_query:
$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中文网其他相关文章!