vérifier si le nom d'utilisateur existe en temps réel grâce à AJAX en php avec mysql

Je suis en train de travailler sur un projet en php/MySQL qui m'oblige à vérifier le nom d'utilisateur en temps réel signifie que les entrées d'utilisateur le nom d'utilisateur.

C'est mon username.php où l'utilisateur entre le nom d'utilisateur & mot de passe et d'où l' check.php est déclenchée...

<html>
<head>
   <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>

   <script type="text/javascript">

     $(document).ready(function(){
        $("#username").change(function(){
             $("#message").html("<img src='images/loader.gif' /> checking...");


        var username = $("#username").val();

          $.ajax({
                type:"post",
                url:"check.php",
                data:"username =" + username,
                    success:function(data){
                    if(data==0){
                        $("#message").html("<img src='images/tick.png' /><span style='font-size:13px; color: black'> Username available</span>");
                    }
                    else{
                        $("#message").html("<img src='images/err.png' /><span style=font-size:13px; color: red'> Username already taken</span>");
                    }
                }
             });

        });

     });

   </script>
   </head>

   <body>

   <table>
    <tr>
          <td>Username</td>
          <td>:</td>
          <td><input type="text" name="username" id="username"/><td>
            <td id="message"><td>
    </tr>

    <tr>
          <td>Password</td>
          <td>:</td>
          <td><input type="text" name="password" id="password" /><td>
    </tr>
   </table>
   </body>
   </html>

C'est le check.php où le nom d'utilisateur est vérifié dans la base de données.

<?php

$con = mysqli_connect("localhost", "root", "hilbi", "userdb");

if (mysqli_connect_errno())
{

  echo "Failed to connect to MySQL: " . mysqli_connect_error();

}

  //$username = $_POST["username"];

  $username = 'hilbi';

  $query = mysqli_query($con,"SELECT * FROM users WHERE username =   '$username' ");

  $find = mysqli_num_rows($query);

  echo $find;

  mysqli_close($con);

  ?>

Maintenant la check.php fonctionne bien (que j'ai vérifiées par le biais de l'exécution de ce seul et il retourne 1 sur la recherche du nom d'utilisateur et vice versa)

Cependant, lorsque j'execute le username.php elle renvoie toujours nom d'utilisateur est déjà pris. Il semble qu'il en fait ne regarde pas dans la base de données où, en fait, il n'existe pas de nom d'utilisateur.

De l'aide sera très appréciée...

  • Vous envoyez nom d'utilisateur incorrect
  • essayez d'ajouter alert(data); à l'intérieur ur succès fonction de rappel, de sorte que vous pouvez voir ce qui est arriver retourné à partir de php
  • M Ouais, j'ai dû le changer pour un statique nom d'utilisateur après la dynamique n'a pas de travail, juste pour s'assurer que la requête est de travail.
InformationsquelleAutor echology | 2016-03-06