"SELECT * FROM users WHERE pseudo='$_GET[pseudo]'"
<html> <head> <title> TEST</title> </head> <body> <form action=""> <input type="text" name="pseudo" onKeyUp="verifPseudo(this.value)" /> <div id="pseudobox"></div> </form> <script type="text/javascript"> function writediv(texte) { document.getElementById('pseudobox').innerHTML = texte; } function verifPseudo(pseudo){ if(typeof(pseudo)!='undefined' && pseudo!=null && pseudo != '') { var pseudoLen = pseudo.length; console.log('pseudoLen : ' + pseudoLen); if(pseudoLen < 4){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>'); } else if(pseudoLen > 16){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>'); } else if(texte = file('./verifpseudo.php',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(''); } }else{ writediv(''); } } } function file(url,pseudo) { var data ='pseudo='+escape(pseudo); var result = postAjax(url,data); return result; } /** * Retourne l'objet xhr */ function getXhr(){ var xhr = null; try{ if( typeof ActiveXObject == 'function' ){ xhr = new ActiveXObject("Microsoft.XMLHTTP"); } else { if( window.XMLHttpRequest ){ xhr = new XMLHttpRequest(); } } } catch(e) { alert(e.message); return null; } return xhr; } /** * Ajax : POST */ function postAjax(url,data){ var xhr = getXhr(); xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onreadystatechange = function() { if(this.readyState == 4){ console.log('status', xhr.status); console.log('DONE', xhr); if(xhr.status == 200){ console.log('responseText',xhr.responseText); return xhr.responseText; }else{ //error alert('Erreur !' + xhr.status + " -> " + xhr.responseText); } } }; xhr.send(data); } </script> </body> </html>
<?php //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); //récupération PROPRE des variables AVANT de les utiliser $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; //connexion à la bdd: mysql_pconnect("127.0.0.1", "root", "") or die("Impossible de se connecter : " . mysql_error()); mysql_select_db("ubo_adh"); // VERIFICATION $sql = "SELECT usr FROM users2 WHERE pseudo='$pseudo';" : $result = mysql_query($sql) or die( mysql_error() ); $nbre_res=mysql_num_rows($result); //ecriture ternaire (sorte de if.. ) $result = $nbre_res >=1 ? 1 : 2; echo $result;
if($pseudo == 'jordane' ){ $result = 1; }else{ $result = 2; }
$query = mysql_query($sql) or die( mysql_error() ); $nbre_res=mysql_num_rows($query); //ecriture ternaire (sorte de if.. ) $result = $nbre_res >=1 ? 1 : 2; echo $result;
L’encodage de caractères du document HTML n’a pas été déclaré. Le document sera affiché avec des caractères incorrects pour certaines configurations de navigateur si le document contient des caractères en dehors de la plage US-ASCII. L’encodage de caractères de la page doit être déclaré dans le document ou dans le protocole de transfert. ajax.php pseudoLen : 1 ajax.php:21:11 pseudoLen : 2 ajax.php:21:11 pseudoLen : 3 ajax.php:21:11 pseudoLen : 4 ajax.php:21:11 L’utilisation d’XMLHttpRequest de façon synchrone sur le fil d’exécution principal est obsolète à cause de son impact négatif sur la navigation de l’utilisateur final. Consulter http://xhr.spec.whatwg.org/ pour plus d’informations. ajax.php:73:8 status 200 ajax.php:77:13 DONE XMLHttpRequest { onreadystatechange: onreadystatechange(), readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: "http://127.0.0.1/reg/verifpseudo.php", status: 200, statusText: "OK", responseType: "", response: "2" } ajax.php:78:13 responseText 2 ajax.php:80:15
pseudoLen : 1 ajax.php:22:11 pseudoLen : 2 ajax.php:22:11 pseudoLen : 3 ajax.php:22:11 pseudoLen : 4 ajax.php:22:11 status 200 ajax.php:78:13 DONE XMLHttpRequest { onreadystatechange: onreadystatechange(), readyState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: "http://127.0.0.1/reg/verifpseudo.php", status: 200, statusText: "OK", responseType: "", response: "2" } ajax.php:79:13 responseText 2
responseText 2
function verifPseudo(pseudo){ if(typeof(pseudo)!='undefined' && pseudo!=null && pseudo != '') { console.log(' pseudo : ' + pseudo); var pseudoLen = pseudo.length; console.log('pseudoLen : ' + pseudoLen); if(pseudoLen < 4){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>'); } else if(pseudoLen > 16){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>'); } else{ var texte = file('./verifpseudo.php',escape(pseudo)); console.log("TEXTE = " + texte); 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{ console.log("Valeur de texte inconnue !"); writediv(''); } } } }
function writediv(texte) { document.getElementById('pseudobox').innerHTML = texte; } function verifPseudo(pseudo){ if(typeof(pseudo)!='undefined' && pseudo!=null && pseudo != '') { var pseudoLen = pseudo.length; console.log('pseudoLen : ' + pseudoLen); if(pseudoLen < 4){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>'); } else if(pseudoLen > 16){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>'); } else{ file('./verifpseudo.php',escape(pseudo)); } } } function file(url,pseudo) { var data ='pseudo='+escape(pseudo); var result = postAjax(url,data,function(response){ console.log("response" , response); if(response == 1){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>'); } else if(response == 2){ writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>'); }else{ console.log("Valeur inconnue !"); writediv(''); } }); return result; } /** * Retourne l'objet xhr */ function getXhr(){ var xhr = null; try{ if( typeof ActiveXObject == 'function' ){ xhr = new ActiveXObject("Microsoft.XMLHTTP"); } else { if( window.XMLHttpRequest ){ xhr = new XMLHttpRequest(); } } } catch(e) { alert(e.message); return null; } return xhr; } /** * Ajax : POST */ function postAjax(url,data,callBack){ var xhr = getXhr(); xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onreadystatechange = function() { if(this.readyState == 4){ console.log('status', xhr.status); console.log('DONE', xhr); if(xhr.status == 200){ console.log('responseText',xhr.responseText); callBack(xhr.responseText); }else{ //error alert('Erreur !' + xhr.status + " -> " + xhr.responseText); } } }; xhr.send(data); }
function verifPseudo(pseudo){ if(typeof(pseudo)!='undefined' && pseudo!=null && pseudo != '') { var pseudoLen = pseudo.length; console.log('pseudoLen : ' + pseudoLen); if(pseudoLen < 4){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>'); } else if(pseudoLen > 16){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>'); } else{ file('./verifpseudo.php',escape(pseudo),function(response){ console.log("response" , response); if(response == 1){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>'); } else if(response == 2){ writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>'); }else{ console.log("Valeur inconnue !"); writediv(''); } }); } } } function file(url,pseudo, callBack) { var data ='pseudo='+escape(pseudo); var result = postAjax(url,data,callBack); return result; }
function writediv(texte) { document.getElementById('pseudobox').innerHTML = texte; } function writedive(texte2) { document.getElementById('emailbox').innerHTML = texte2; } function writedivr(texte3) { document.getElementById('boutonbox').innerHTML = texte3; } function verifPseudo(pseudo){ if(typeof(pseudo)!='undefined' && pseudo!=null && pseudo != '') { var pseudoLen = pseudo.length; console.log('pseudoLen : ' + pseudoLen); if(pseudoLen == 0){ writediv('R'); } else if(pseudoLen < 4){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop court</span>'); } else if(pseudoLen > 16){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est trop long</span>'); } else{ file('./verifpseudo.php',escape(pseudo),function(response){ console.log("response" , response); if(response == 1){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>'); } else if(response == 2){ writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>'); }else{ console.log("Valeur inconnue !"); writediv(''); } }); } } else { writediv(''); } } function verifEmail(email){ if(typeof(email)!='undefined' && email!=null && email != '') { var emailLen = email.length; console.log('emailLen : ' + emailLen); if(emailLen < 4){ writedive('<span style="color:#cc0000"><b>'+email+' :</b> ce email est trop court</span>'); } else if(emailLen > 60){ writedive('<span style="color:#cc0000"><b>'+email+' :</b> ce email est trop long</span>'); } else{ file2('./verifemail.php',escape(email),function(response2){ console.log("response2" , response2); if(response2 == 1){ writedive('<span style="color:#cc0000"><b>'+email+' :</b> ce email est deja pris</span>'); } else if(response2 == 2){ writedive('<span style="color:#1A7917"><b>'+email+' :</b> ce email est libre</span>'); }else{ console.log("Valeur inconnue !"); writedive(''); } }); } } else { writedive(''); } } function file(url,pseudo, callBack) { var data ='pseudo='+escape(pseudo); var result = postAjax(url,data,callBack); return result; } function file2(url,email, callBack) { var data ='email='+escape(email); var result = postAjax(url,data,callBack); return result; } /** * Retourne l'objet xhr */ function getXhr(){ var xhr = null; try{ if( typeof ActiveXObject == 'function' ){ xhr = new ActiveXObject("Microsoft.XMLHTTP"); } else { if( window.XMLHttpRequest ){ xhr = new XMLHttpRequest(); } } } catch(e) { alert(e.message); return null; } return xhr; } /** * Ajax : POST */ function postAjax(url,data,callBack){ var xhr = getXhr(); xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onreadystatechange = function() { if(this.readyState == 4){ console.log('status', xhr.status); console.log('DONE', xhr); if(xhr.status == 200){ console.log('responseText',xhr.responseText); callBack(xhr.responseText); }else{ //error alert('Erreur !' + xhr.status + " -> " + xhr.responseText); } } }; xhr.send(data); } if (response == 2) { writedivr('bouton'); } else { writedivr('RIEN'); }
if (response == 2) { writedivr('bouton'); } else { writedivr('RIEN'); }
var checkResponse1= 0; //pour le pseudo var checkResponse2= 0; // pour le mail
function checkCheck(){ checkResponses = checkResponse1 + checkResponse2; if (checkResponses == 2) { writedivr('bouton'); } else { writedivr('RIEN'); } }
file('./verifpseudo.php',escape(pseudo),function(response){ console.log("response" , response); if(response == 1){ writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris</span>'); } else if(response == 2){ writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>'); checkResponse1++; //ici j'incrémente ma variable }else{ console.log("Valeur inconnue !"); writediv(''); } checkCheck(); //on vérifie l'état des réponses });
18 juin 2018 à 17:17
http://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Et cela : http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
18 juin 2018 à 17:23
Merci Jordan45 pour ta réponse
effectivement j'ai remplacé par "$_POST["pseudo"]" mais ça n'a rien donné !
pour ce qui est de la version de PHP, je suis au courant mais je préfère travailler avec la version 5.x pour des raison technique au niveau de notre réseau :)
18 juin 2018 à 17:30
(pense à activer l'affichage de l'ajax )
et perso... je te conseille de debuguer via FireFox ( c'est plus simple pour debuguer l'ajax).
Ensuite, concernant la parti de ton code PHP ... peux tu activer l'affichage des erreurs PHP et ajouter, à tes instructions mysql, des OR DIE pour s'assure qu'il n'y ait aucun souci de ce côté là.
Reposte nous ton code modifier que l'on regarde ce qu'il en est.
18 juin 2018 à 19:31
Rien a faire :(
j'ai changé le paramètre "GET" en "POST" sur :
Page ajax.php :
- xhr_object.open("POST", fichier, false);
Page verifpseudo.php :
- $pseudo=$_POST["pseudo"];
J'ai testé la page verifpseudo indépendamment sans le formulaire et ça amrche, ça m'affiche les bons résultats, mais si je passe par le formulaire ajax ça me dit que le pseudo saisir est libre malgré qu'il existe dans ma base de donnée (table users) :(
Je vous retransmet le code dans l'espoir d'avoir une correction à ce dernier parce-que je sens que c'est une erreur de procédé et non de syntaxe.
Page ajax.php :
Page verifpseudo.php
Merci encore pour votre aide :)
Modifié le 18 juin 2018 à 21:38
comme il s'agit de donné formaté en donné de formulaire envoyé avec post il ne faut pas oublier de modifier l'entete d'envoi