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

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

Barbara Streisand
发布: 2024-12-24 01:08:11
原创
637 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板