使用 ajax jquery php mysql 检查用户名

Posted

技术标签:

【中文标题】使用 ajax jquery php mysql 检查用户名【英文标题】:Check username with ajax jquery php mysql 【发布时间】:2016-12-03 21:55:33 【问题描述】:

我有表用户:

id:整数, 用户名:varchar(255), 密码:varchar(255),

我会检查登录是否存在于数据库中

我尝试使用这段代码 jquery 和 html

 <div class="form-group">
     <label class="control-label col-md-3 col-sm-3 col-xs-12" for="first-name">username <span class="required">*</span></label>
     <div class="col-md-6 col-sm-6 col-xs-12">
        <input type="text"  class="form-control col-md-7 col-xs-12"  name="username " id="username ">
          <span id="availablity"></span>
     </div>
 </div>
<script type="text/javascript">

    $('document').ready(function()
            $('#username').blur(function()
                var username = $(this).val();
                $.ajax (
                    url = "check.php",
                    method = "POST",
                    data =  username :username ,
                    dataType : "text",
                    success:function(html)
                    
                        $('#availablity').html(html);
                    
                );
            );
    );
</script>

页面检查.php:

if(isset($_POST['username']))
                $username  = $_POST["username"];
                $sql = $db->query("SELECT * FROM users WHERE username  = '$username'");
                if($sql->rowCount() > 0)
                     echo '<span class="text-danger">Not Exist</span>';
                else
                    echo '<span class="text-success">Exist</span>';
                


但没有结果

【问题讨论】:

你的 console.log(html) 的结果是什么? Bobby Tables! 出于安全原因:您确实应该转义您的用户名。目前,您的应用程序容易受到 SQL 注入攻击。 除此之外,你的逻辑是错误的:rowCount()&gt;0 应该返回“Exists” 【参考方案1】:

请尝试以下代码。

JavaScript 代码

 $('document').ready(function()
          $('#username').change(function()
               var username = $(this).val();
                $.ajax (
                    url : "check.php",
                    method : "POST",
                    data :  username :username ,
                    dataType: "text",
                    success:function(html)
                    
                        $('#availablity').html(html);
                    
                );
            );
   );

你提到了 id="username "(带空格),请按如下方式更改。

<input type="text"  class="form-control col-md-7 col-xs-12"  name="username" id="username">

【讨论】:

@johansson,您接受了我的回答,然后将其删除。【参考方案2】:

您在 ajax 配置中使用了 =。那是语法错误。使用

$.ajax(
    url: "check.php",
    method: "POST",
    data: username: username,
    dataType: "text",
    success: function (html) 
        $('#availablity').html(html);
    
);

改为。

【讨论】:

【参考方案3】:

这应该是您的代码:

$('document').ready(function()
            $('#username').blur(function()

                var username = $(this).val();
                $.ajax (
                    url :"check.php",
                    method: "POST",
                    data : username :username ,
                    dataType : "text",
                    success:function(html)
                    
                        $('#check').html(html);
                    
                );
            );
    );

【讨论】:

【参考方案4】:

看起来 Jquery 语法错误...

<script type="text/javascript">

    $('document').ready(function()
            $('#username').blur(function()
                var username = $(this).val();
                $.ajax (
                    url : "check.php",
                    method : "POST",
                    data :  username :username ,
                    dataType : "text",
                    success:function(html)
                    
                        console.log(html);
                        $('#availablity').html(html);

                    ,
                    error: function(html)
                    
                        console.log(html);
                    
                );
            );
    );
</script>

检查您的控制台消息。

【讨论】:

以上是关于使用 ajax jquery php mysql 检查用户名的主要内容,如果未能解决你的问题,请参考以下文章

复选框状态更改时如何更新mysql字段?使用 jquery (ajax)、php 和 mysql

使用 PHP、MySQL、Jquery 和 Ajax 创建 5 星评级系统

使用 Jquery、AJAX 和 PHP 从 MySQL 数据库中检索数据

从 PHP (jQuery/AJAX) 插入 MySQL

使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能

AJAX PHP MYSQL 更新/编辑记录 (jQuery)