jQuery验证远程方法使用以检查用户名是不是已经存在

Posted

技术标签:

【中文标题】jQuery验证远程方法使用以检查用户名是不是已经存在【英文标题】:jQuery Validate remote method usage to check if username already existsjQuery验证远程方法使用以检查用户名是否已经存在 【发布时间】:2013-05-10 17:42:00 【问题描述】:

我想使用 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."
            
        
  );

检查用户名.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);
?>

此代码始终显示用户名被使用的错误,即使它不是。

我正在使用 jQuery Mobile 1.9.1

提前致谢。

【问题讨论】:

你能再解释一下这个问题吗?哪一部分似乎有效,哪一部分无效? 在注册页面,不检查用户是否被带走。 打开网络标签。是否在提交时将请求发送到“check-username.php”页面?如果有,响应代码是什么(200,404,500 等),响应内容是什么? 好的,很抱歉,没有向 check-username.php 发送请求,该文件位于错误的位置。我修复了它,但现在它总是显示用户名已被使用,即使它不是! 【参考方案1】:

我已经设法通过更改我使用的 PHP 技术来实现它,这是我的 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;
?>

感谢大家的帮助:)

【讨论】:

5 年过去了,仍然对我有帮助。来自我的支持【参考方案2】:

我有两个资源可供查看。

来自验证插件的官方示例: http://jquery.bassistance.de/validate/demo/milk/

jQuery论坛解决方案: http://forum.jquery.com/topic/jquery-validation-plugin-remote-validation-problem-locks-up

据我所知,可能的解决方案是不需要对响应进行 json 编码。由于 json 需要键值对,因此仅提供值是行不通的。因此,请尝试将其作为“真”或“假”字符串回显。

其次,验证使用 GET 作为表单提交方法,而不是 POST。

注意:刚刚找到可能的解决方案问题 jQuery Remote validation

【讨论】:

实际上确实有点作用。不幸的是,我对 jQuery Mobile 并不了解。如果其他人是,他们应该随时纠正我们。 :)

以上是关于jQuery验证远程方法使用以检查用户名是不是已经存在的主要内容,如果未能解决你的问题,请参考以下文章

jquery的closest方法的使用以及其与parents方法之间的差异

使用带有“远程”选项的 jQuery 验证插件

是否可以使用 jQuery 加密 AJAX 调用以进行身份​​验证?

jQuery Validate Plugin - 触发单个字段的验证

如何远程验证电子邮件或检查电子邮件是不是存在

jQuery 验证远程选项 Flask