首页 >数据库 >mysql教程 >为什么我的 jQuery 验证远程方法在检查用户名可用性时总是失败?

为什么我的 jQuery 验证远程方法在检查用户名可用性时总是失败?

Barbara Streisand
Barbara Streisand原创
2024-12-24 01:08:11663浏览

Why Does My jQuery Validate Remote Method Always Fail When Checking Username Availability?

jQuery 验证:使用远程方法检查用户名可用性

在此问题中,用户尝试使用 jQuery.validate 的远程方法验证用户名是否存在。然而,他们遇到了一个问题,即使没有使用用户名,验证也总是失败。

原始代码

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:

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

问题

原始代码使用了远程方法不正确,因为它总是返回 true,表明用户名是

解决方案

用户通过更新 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;
?>

说明

更新的 PHP 代码:

  • 使用 $request 变量从请求。
  • 查询数据库统计指定用户名的记录数。
  • 如果没有找到记录,则将 $valid 设置为 'true',表示该用户名可用。

以上是为什么我的 jQuery 验证远程方法在检查用户名可用性时总是失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

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