Ajax et vérification de pseudo
ju_boc
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
blacksmoke -
blacksmoke -
Bonjour,
en bon débutant j'ai trouvé un bout de code que je souhaite adapté à mon formulaire, mon problème est que je n'arrive pas à corriger ce qu'il me renvoit :
(ce sont les dernières lignes du code présenté)
j'ai essayé d'enlever le >, de mettre des accolades autour des echos, etc... mais rien n'y fait
Merci de m'aider à me sortir de ces heures de galères
Voici mon code:
et dans un fichier 'verifpseudo.php' mis à la racine:
en bon débutant j'ai trouvé un bout de code que je souhaite adapté à mon formulaire, mon problème est que je n'arrive pas à corriger ce qu'il me renvoit :
=1); echo "1"; else echo "2"; ?>
(ce sont les dernières lignes du code présenté)
j'ai essayé d'enlever le >, de mettre des accolades autour des echos, etc... mais rien n'y fait
Merci de m'aider à me sortir de ces heures de galères
Voici mon code:
<head> <script type="text/javascript"> function writediv(texte) { document.getElementById('pseudobox').innerHTML = texte; } function verifPseudo(pseudo) { if(pseudo != '') { if(pseudo.length<4) writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>'); else if(pseudo.length>30) writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>'); else if(texte = file('verifpseudo.php?pseudo='+escape(pseudo))) { if(texte == 1) writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>'); else if(texte == 2) writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>'); else writediv(texte); } } } function file(fichier) { if(window.XMLHttpRequest) // FIREFOX xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // IE xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else return(false); xhr_object.open("GET", fichier, false); xhr_object.send(null); if(xhr_object.readyState == 4) return(xhr_object.responseText); else return(false); } </script> </head> <body> <form action=""> <input type="text" name="pseudo" onKeyUp="verifPseudo(this.value)" /> <div id="pseudobox"></div> </form><noscript><a href="http://www.editeurjavascript.com/">ajax</a></noscript> </body>
et dans un fichier 'verifpseudo.php' mis à la racine:
//LE SCRIPT DOIT RETOURNER : //1 : SI LE SPEUDO EST DEJA PRIS //2 : SI LE PSEUDO EST LIBRE // CONNECION SQL mysql_connect("localhost", "user", ""); mysql_select_db("demande_modif"); // VERIFICATION $result = mysql_query("SELECT login FROM utilisateur_access WHERE login='".$_GET["pseudo"]."'"); if(mysql_num_rows($result)>=1); echo "1"; else echo "2"; ?>
A voir également:
- Ajax et vérification de pseudo
- Pseudo whatsapp - Accueil - Messagerie instantanée
- Pseudo facebook - Guide
- Verification lien internet - Guide
- Verification windows 11 - Guide
- Retrouver son compte epic games avec son pseudo - Forum Jeux vidéo
14 réponses
essaie comme ca :
// VERIFICATION $result = mysql_query(" SELECT login FROM utilisateur_access WHERE login='".$_GET["pseudo"]."' "); if(mysql_num_rows($result)) { echo "1"; } else { echo "2"; }
if(mysql_num_rows($result) >= 1){ //une accolade au lieu d'un ; ce sera mieux echo "1"; }else{ echo "2"; } //et prend l'habitude d'en mettre car le jour ou tu veux rajouter une instruction tu vas avoir des soucis
et il faut faite le test de mysql_num_rows par rapport à un nombre, pas par rapport a true ou false
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
merci alain_42 mais j'avais essayé avec les accolades et cela me donne la même chose avec elles en plus:
au lieu de :
donc c'est assez bizarre cette histoire !!
=1 ){ echo "1"; } else{ echo "2"; } ?>
au lieu de :
=1); echo "1"; else echo "2"; ?>
donc c'est assez bizarre cette histoire !!
Alain_42 et il faut faite le test de mysql_num_rows par rapport à un nombre, pas par rapport a true ou false
ah bon et pourquoi ca ?
par ce que si la requette est correcte, donc sans erreur de code:
si aucun enregistrement trouvé, mysql_num_rows() renvoie 0
donc pas false
"Le nombre de lignes dans un jeu de résultats en cas de succès, ou FALSE si une erreur survient"
si false c'est que la reqette n'a pas fonctionné correctement(mauvais code), pas qu'il n'y a pas d'enr correspondant au pseudo
si aucun enregistrement trouvé, mysql_num_rows() renvoie 0
donc pas false
"Le nombre de lignes dans un jeu de résultats en cas de succès, ou FALSE si une erreur survient"
si false c'est que la reqette n'a pas fonctionné correctement(mauvais code), pas qu'il n'y a pas d'enr correspondant au pseudo
Salut Alain_42 j'essaye de suivre tes conseils, que penses tu de cette écriture? aussi, j'ai l'impression que ma connexion de mon formulaire à ma requête n'est pas bonne, est ce possible que cela ne fonctionne pas en local, seulement en ligne ??
ma connexion est de type:
...
et ma nouvelle requête:
Merci !!
ma connexion est de type:
...
else if(texte = connectFile('veriflogin.php?login='+escape(login))){...
et ma nouvelle requête:
<? // Configuration de la base de donnée include('application/conf/conf-db.php'); // Vérifier si la connection à MySQL est disponible if ($linkDb){ ////////////////////////////////////////////////////////////////////// $sql = "SELECT login FROM utilisateur_access WHERE login='".$_GET["login"]."'"; // envoyer la requete SELECT au serveur MySQL $result = mysqli_query ($linkDb,$sql) ; // vérifier si la requête a été faite if (!$result) { // en cas d'erreur //echo mysqli_error($linkDb) ; exit(); } else { // nombre de lignes dans le jeu de résultats $nbLignes = mysqli_num_rows($result); if (($nbLignes) == 0){ echo "0"; } else{ echo "1"; } } } else { // connection à MySQL non disponible //echo 'Erreur de connection à MySQL : '. mysqli_connect_error() ; } ?>
Merci !!
Alain_42, le 17 mar 2010 à 08:58: si aucun enregistrement trouvé, mysql_num_rows() renvoie 0 donc pas false
si aucuns resultats trouvés mysql_num_rows ne renvoi rien donc ma condition est correcte ;)
Désolé de te contredire mais je viens de faire l'essaie en réel:
code:
et le copie d'écran:
Dans : Resource id #4 nombre enr trouves: 4
Dans : Resource id #5 nombre enr trouves: 0
tu vois que dans tous les cas on a une ressource et que mysql_num_rows renvoie le nombre de lignes de données dans cette ressource
code:
........ $sql1='SELECT DISTINCT Localisation FROM affaire ORDER BY Localisation'; $result1=mysql_query($sql1) or die("Erreur de la requête SQL 1".mysql_error()); echo 'Dans : '.$result1.' nombre enr trouves: '.mysql_num_rows($result1); $sql2="SELECT DISTINCT Localisation FROM affaire WHERE Localisation='bidon'" ; $result2=mysql_query($sql2) or die("Erreur de la requête SQL 1".mysql_error()); echo '<br /><br />Dans : '.$result2.' nombre enr trouves: '.mysql_num_rows($result2);
et le copie d'écran:
Dans : Resource id #4 nombre enr trouves: 4
Dans : Resource id #5 nombre enr trouves: 0
tu vois que dans tous les cas on a une ressource et que mysql_num_rows renvoie le nombre de lignes de données dans cette ressource
PS: par contre je te concède que le test:
fonctionne correctement même dans le cas du zéro
Cordialement
@lain
if(mysql_num_rows($result1))
fonctionne correctement même dans le cas du zéro
Cordialement
@lain