首页 >后端开发 >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 验证远程方法来检查用户名可用性

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn