mysql / PHP / AJAX: Fonction récup des valeurs dans champs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : mysql / PHP / AJAX: Fonction récup des valeurs dans champs

par zeus » 23 janv. 2006, 18:30

Je serais curieux de connaitre l'avis des grands de ce forum sur ces objets ? Ca me semble pouvoir rendre des services, mais est-ce qu'il y a des bugs, incompatibilités trop grande ou je ne sais quoi d'autre ?
Ca sera avec plaisir mais dans un autre sujet pour ne pas mélanger les réponses dans celui çi ;)

par heddicmi » 23 janv. 2006, 18:25

Je serais curieux de connaitre l'avis des grands de ce forum sur ces objets ? Ca me semble pouvoir rendre des services, mais est-ce qu'il y a des bugs, incompatibilités trop grande ou je ne sais quoi d'autre ?

par zeus » 23 janv. 2006, 18:22

Et si, lors de la vérification du login, tu retournais soit 1 si le login n'existe pas, soit les infos que tu veux si il existe ?
// VERIFICATION
$result = mysql_query("SELECT login, nom_de_famille FROM utilisateurs WHERE login='".$_GET["pseudo"]."'")or die(mysql_error()) ;
if(mysql_num_rows($result)>=1)
//récupération du champs "nom_de_famille" dans les résultats
echo mysql_result($result, 0, "nom_de_famille");
else
echo "2";
Et dans le code de vérification :

Code : Tout sélectionner

if(texte <> 2) writediv('<span style="color:#cc0000"><b>'+pseudo+' :</b> ce pseudo est deja pris par "+texte+"</span>'); else if(texte == 2) writediv('<span style="color:#1A7917"><b>'+pseudo+' :</b> ce pseudo est libre</span>'); else writediv(texte); }

mysql / PHP / AJAX: Fonction récup des valeurs dans champs

par energie13 » 23 janv. 2006, 18:02

bonjour,
j'ai trouvé une fonction qui permet de controler si le pseudo renseigner dans un champ se trouve ou non dans la base mysql sans recharger la page. C'est extra déjà :)

Je souhaite compléter le script en lui demandant une fois que le pseudo est trouvé dans la base de récupérer le nom de famille correspondant au pseudo dans un autre champ texte sans avoir à recharger la base.

Voici les codes utilisés :
pages.php :

Code : Tout sélectionner

<html> <head> <title>AJAX</title> <script type="text/javascript"> function writediv(texte) { document.getElementById('pseudobox').innerHTML = texte; } function verifPseudo(pseudo) { if(pseudo != '') { if(pseudo.length<2) 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('http://127.0.0.1/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="" name="test" id="test"> <input type="text" name="pseudo" onKeyUp="verifPseudo(this.value)" /> <div id="pseudobox"></div> </form> </body> </html>
page Vérifpseudo.php

Code : Tout sélectionner

<?php // // VERIFICATION EN LIVE DU PSEUDO // // CONNECION SQL mysql_connect("localhost", "identi", "pass"); mysql_select_db("ecoute"); // VERIFICATION $result = mysql_query("SELECT login FROM utilisateurs WHERE login='".$_GET["pseudo"]."'")or die(mysql_error()) ; if(mysql_num_rows($result)>=1) echo "1"; else echo "2"; ?>
Si quelqu'un à une idée je lui en serais tres reconnaissant
C'est assez complique (enfin pour moi)

Merci par avance