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.
Vous devez vous connecter pour publier un commentaire.
Envoyer vos données en javascript à l'aide de jQuery comme ceci:
Dans votre check.php obtenez nom d'utilisateur comme ceci
Pour que cela fonctionne correctement, vous check.php doit retourner 1 ou 0, ne pas l'écho de mysql il y a des erreurs ou que ce soit. si une erreur se produit, juste l'écho de 0.
Vous avez besoin pour passer de $username variable correctement.
Guillemets simples php vars sont traités comme de simples chaînes de caractères et les variables ne sont pas évalués.
OU