Formulaire
Dernière réponse : dans Programmation
Bonjour tout le monde,
voila je me confronte à un petit problème, je voudrai faire un formulaire dans lequel l'utilisateur sait de suite si le pseudo qu'il a choisit est encore disponible ou non.
Pour le moment j'ai fait ceci:
fichier formulaire.html:
Puis le fichier verif_inscription.php
Voila donc je sais que Ajax peut faire cela mais comment?? Car les exemple trouvé sur le net ne me parle pas vraiment.
Merci d'avance
voila je me confronte à un petit problème, je voudrai faire un formulaire dans lequel l'utilisateur sait de suite si le pseudo qu'il a choisit est encore disponible ou non.
Pour le moment j'ai fait ceci:
fichier formulaire.html:
<body>
<div class="cadre">
<h1>Inscription</h1>
<form action="verif_inscription.php" method=GET enctype="text/plain">
<table class=formulaire>
<tr>
<th>Pseudo:</th><td colspan=2>
<input name="pseudo" TYPE=TEXT /></td>
</tr>
<tr>
<th>Mot de passe:</th><td colspan=2>
<input name="passwordUtilisateur" TYPE=PASSWORD /></td>
</tr>
<tr>
<th></th>
</tr>
<tr>
<th>Confirmer le mot de passe:</th><td colspan=2>
<input name="v_passwordUtilisateur" TYPE=PASSWORD /></td>
</tr>
<tr>
<th>Adresse mail:</th><td colspan=2>
<input name="adresseUtilisateur" size=50 TYPE=TEXT /></td>
</tr>
<tr>
<th>Quels sont vos jeux:</th><td>
<input type=checkbox name="jeux[]" value=bf2><img src="Images/bf2.png" class=im_g alt="image">Battlefield 2<br>
<input type=checkbox name="jeux[]" value=bfbc2><img src="Images/bfbc22.png" class=im_g alt="image">Battlefield Bad company 2<br>
<input type=checkbox name="jeux[]" value=lol><img src="Images/lol2.png" class=im_g alt="image">League of Legend<br>
<input type=checkbox name="jeux[]" value=gta_san_andreas><img src="Images/gta2.png" class=im_g alt="image">GTA San Andreas<br>
<input type=checkbox name="jeux[]" value=combat_arms><img src="Images/combat.png" class=im_g alt="image">Combat Arms<br>
<input type=checkbox name="jeux[]" value=autre><img src="Images/jeu.png" class=im_g alt="image">Autres jeux<br>
</td>
</tr>
<tr>
<tr>
<td colspan=3 class="bouton">
<input type="reset" value=Reset>
<input type="submit" value=Valider name="send">
</td></tr>
</table>
</form>
</div>
</body>
Puis le fichier verif_inscription.php
<HTML>
<HEAD>
<script language="JavaScript">
// une fonction javascript permettant de revenir a la page precedente
<!--
function precedent()
{
document.write('<form><input type="button" value="Precedent" onclick="history.back();"></form>');
}
-->
</script>
</HEAD>
<BODY>
<?php
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', '');
// on sélectionne la base
mysql_select_db('MyDB',$db);
if (isset($_GET['pseudo'])){
$pseudo=$_GET['pseudo'];
$sql = "SELECT pseudo from UTILISATEUR WHERE ((pseudo) like '$pseudo')";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$nbr = mysql_num_rows($req);
if ($nbr!=0){
echo "Ce pseudo existe deja, merci d'en entrer un autre.";
echo "<script language='JavaScript'>precedent()</script> ";
exit();
}
}
if (isset($_GET['passwordUtilisateur'])){
$passwordUtilisateur=$_GET['passwordUtilisateur'];
}
if (isset($_GET['v_passwordUtilisateur'])){
$v_passwordUtilisateur=$_GET['v_passwordUtilisateur'];
}
if (isset($_GET['adresseUtilisateur'])){
$adresseUtilisateur=$_GET['adresseUtilisateur'];
// on ajoute l'enregistrement
$sql = "SELECT adresseUtilisateur from UTILISATEUR WHERE ((adresseUtilisateur) like '$adresseUtilisateur')";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
}
$j=0;
for ($i=0; $i<100; $i++){
if (isset($_GET['jeux'][$i])){
$jeux[$i]=$_GET['jeux'][$i];
$j++;
}
}
if (isset($_GET['autre_jeu'])){
$autre_jeu=$_GET['autre_jeu'];
}
$domain = explode('@', $adresseUtilisateur);
// dans un premier temps on regarde si l'adresse mail a la forme d'une adresse mail cad nananere@machin.quelquechose
if(filter_var($adresseUtilisateur, FILTER_VALIDATE_EMAIL)){
// on regarde ensuite en questionnant le machin.quelquechose pour voir si il existe.
if (!checkdnsrr($domain[1]))
//si ce n'est pas le cas alors on affiche le message en dessous
echo "Adresse Mail invalide, merci d'inscrire une adresse e-mail valide.";
//si machin.quelquechose existe alors on poursuit
else{
// on regarde si la valeur recu par le bouton nommé send est Validé
if ($_GET['send']=="Valider") {
// on regarde ici si les champs sont remplis ou si il y en a des vides
if (($pseudo=="")||($passwordUtilisateur=="")||($v_passwordUtilisateur=="")||($adresseUtilisateur=="")){
//si c'est le champs pseudo qui est vide alors on envoi le message...
if($pseudo==""){
print("Veuillez saisir votre pseudo<BR>\n");
}
//et pareil pour chaque champs
if($passwordUtilisateur==""){
print("Veuillez saisir le mot de passe<BR>\n");
}
if($v_passwordUtilisateur==""){
print("Veuillez confirmer votre mot de passe espece de $pseudo<BR>\n");
}
if($adresseUtilisateur==""){
print("Veuillez saisir votre adresse e-mail<BR>\n");
}
if($j==0){
print("Veuillez indiquer a quels jeux vous jouez svp.<BR>\n");
}
echo "<script language='JavaScript'>precedent()</script> ";
}
else {
if($passwordUtilisateur!=$v_passwordUtilisateur){
print("Les deux mots de passe ne sont pas identique.<BR>\n");
echo "<script language='JavaScript'>precedent()</script> ";
}
else{
echo "Récapitulatif des informations saisies<BR>\n
<UL>
<LI>Pseudo: $pseudo</LI>
<LI>Mail: $adresseUtilisateur</LI>
<LI>Jeux: ";
$nombrejeux=count($jeux);
$nbr=0;
for ($i=0; $i<$nombrejeux; $i++){
if ($nbr==0){
echo "$jeux[$i]";
$nbr++;
}
else{
echo "/ $jeux[$i]";
}
}
echo "</LI>";
if ($autre_jeu=="")
echo "";
else
echo "<LI>Autres jeux: $autre_jeu</LI></UL>";
// on ajoute l'enregistrement
$sql = "INSERT INTO UTILISATEUR (pseudo,passwordUtilisateur,adresseUtilisateur,nbrjeux) VALUES ('$pseudo','$passwordUtilisateur','$adresseUtilisateur','$nombrejeux')";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on ferme la connexion à mysql
mysql_close();
}
}
}
else {
echo "<p>Vous n'avez pas demandé que les informations soient affichées.<p>";
}
}
}
else{
echo "Adress mail invalide merci de vous inscrire avec un mail valide. <br>";
echo "<script language='JavaScript'>precedent()</script> ";
}
?>
</BODY>
</HTML>
Voila donc je sais que Ajax peut faire cela mais comment?? Car les exemple trouvé sur le net ne me parle pas vraiment.
Merci d'avance
Autres pages sur : formulaire
Lassé par la pub ? Créez un compte
Meilleure solution
Salut,
Explications du process et quelques liens à voir pour comprendre comment faire de l'AJAX correctement.
Pour faire une comparaison 'en live' (j'imagine sans recharger la page alors...) il faut que tu utilises de l'AJAX.
Le principe est simple :
- Tu ajoutes un "écouteur" sur l'évènement onchange de ton champ de texte (http://www.htmlcodetutorial.com/forms/_INPUT_onChange.html)
- Dans cet écouteur, tu fais une requête AJAX vers un script PHP de vérification de pseudo (qui te renverra si le pseudo est libre). Le plus simple est de demander à ta page d'écrire juste "OK" ou "KO" selon la disponibilité du pseudo
(http://www.tizag.com/ajaxTutorial/ajaxbrowsersupport.php)
- Une requête AJAX est asynchrone (en tout cas, elle doit l'être, sinon, c'est mal), donc il faut ajouter un 'écouteur' sur l'vévènement onreadystatechange. Si le code retour est à 200, tout s'est bien passé, ta réponse est disponible à priori.
(http://www.xul.fr/Objet-XMLHttpRequest.html)
- Tu signales que le pseudo est libre ou non (de la façon de ton choix) et active/désactive la soumission du formulaire le cas échéant.
Bonne chance,
Cdt;
Explications du process et quelques liens à voir pour comprendre comment faire de l'AJAX correctement.
Pour faire une comparaison 'en live' (j'imagine sans recharger la page alors...) il faut que tu utilises de l'AJAX.
Le principe est simple :
- Tu ajoutes un "écouteur" sur l'évènement onchange de ton champ de texte (http://www.htmlcodetutorial.com/forms/_INPUT_onChange.html)
- Dans cet écouteur, tu fais une requête AJAX vers un script PHP de vérification de pseudo (qui te renverra si le pseudo est libre). Le plus simple est de demander à ta page d'écrire juste "OK" ou "KO" selon la disponibilité du pseudo
(http://www.tizag.com/ajaxTutorial/ajaxbrowsersupport.php)
- Une requête AJAX est asynchrone (en tout cas, elle doit l'être, sinon, c'est mal), donc il faut ajouter un 'écouteur' sur l'vévènement onreadystatechange. Si le code retour est à 200, tout s'est bien passé, ta réponse est disponible à priori.
(http://www.xul.fr/Objet-XMLHttpRequest.html)
- Tu signales que le pseudo est libre ou non (de la façon de ton choix) et active/désactive la soumission du formulaire le cas échéant.
Bonne chance,
Cdt;
bonjour
j'ai un script de vérification du pseudo, à adapter, je sais pas si çà peut te servir:
j'ai un script de vérification du pseudo, à adapter, je sais pas si çà peut te servir:
// *** Redirect if username exists
$MM_flag="MM_insert";
if (isset($_POST[$MM_flag])) {
$MM_dupKeyRedirect="inscription_erreur.php";
$loginUsername = $_POST['Pseudo'];
$LoginRS__query = sprintf("SELECT Pseudo FROM membre WHERE Pseudo=%s", GetSQLValueString($loginUsername, "text"));
mysql_select_db($database_maconnexion, $maconnexion);
$LoginRS=mysql_query($LoginRS__query, $maconnexion) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
//if there is a row in the database, the username was found - can not add the requested username
if($loginFoundUser){
$MM_qsChar = "?";
//append the username to the redirect page
if (substr_count($MM_dupKeyRedirect,"?") >=1) $MM_qsChar = "&";
$MM_dupKeyRedirect = $MM_dupKeyRedirect . $MM_qsChar ."requsername=".$loginUsername;
header ("Location: $MM_dupKeyRedirect");
exit;
}
}
zeb a dit :
Allez la_lvlouche, tu nous as montré du code-qui-marche-pas.Présente-nous maintenant le code-qui-roxe-tout, stp.
oki très bien zeb
donc formulaire.php:
<head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title> inscription </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"> ce pseudo est trop court</span>'); else if(pseudo.length>30) writediv('<span style="color:#cc0000"> ce pseudo est trop long</span>'); else if(texte = file('verifpseudo.php?pseudo='+escape(pseudo))) { if(texte == 1) writediv('<span style="color:#cc0000"> ce pseudo est deja pris</span>'); else if(texte == 2) writediv('<span style="color:#1A7917"> ce pseudo est libre</span>'); else writediv(texte); } } } function writemdp(texte) { document.getElementById('mdpbox').innerHTML = texte; } function verifmdp(mdp2) { if(mdp2!='') { if($a!='') { if(mdp2==$a) { writemdp('<span style="color:#1A7017">verification correcte</span>'); } else { writemdp('<span style="color:#cc0000">verification incorrecte</span>'); } } } } function writevide(texte) { document.getElementById('vide').innerHTML = texte; } function writevide2(texte) { document.getElementById('vide2').innerHTML = texte; } function verifvide(mdp1) { if(mdp1=='') writevide('<span style="color:#cc0000">champ obligatoire</span>'); else writevide('<span style="color:#cc0000"></span>'); } function verifvide2(mail) { if(mail=='') writevide2('<span style="color:#cc0000">champ obligatoire</span>'); else writevide2('<span style="color:#cc0000"></span>'); } function recupmdp(mdp1) { $a=mdp1; verifvide($a); } 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> <div class="cadre"> <h1>Inscription</h1> <form action="verif_inscription.php" method=GET enctype="text/plain"> <table class=formulaire> <tr> <th>Pseudo:</th><td> <input name="pseudo" TYPE=TEXT onblur="verifPseudo(this.value)"/></td><th><div id="pseudobox"></div></th> </tr> <tr> <th>Mot de passe:</th><td colspan=1> <input name="passwordUtilisateur" TYPE=PASSWORD onblur="recupmdp(this.value)"/></td><th><div id="vide"></div></th> </tr> <tr> <th></th> </tr> <tr> <th>Confirmation mot de passe:</th><td> <input name="v_passwordUtilisateur" TYPE=PASSWORD onblur="verifmdp(this.value)"/></td><th><div id="mdpbox"></div></th> </tr> <tr> <th>Age:</th><td colspan=1> <SELECT name="age" size="1"> <?php $i=6; while($i<=99) { echo "<OPTION value='$i'>"; echo $i; $i++; } ?> </td> </tr> <tr> <th>Sexe:</th><td colspan=1> <SELECT name="sexe" size="1"> <OPTION value='femme'>femme <OPTION value='homme'>homme </SELECT></td> </tr> <tr> <th>Adresse mail:</th><td colspan=1> <input name="adresseUtilisateur" size=25 TYPE=TEXT onblur="verifvide2(this.value)" /></td><th><div id="vide2"></div></th> </tr> <tr> <th>Quels sont vos jeux:</th><td> <input type=checkbox name="jeux[]" value=bf2><img src="Images/bf2.png" class=im_g alt="image">Battlefield 2<br> <input type=checkbox name="jeux[]" value=bfbc2><img src="Images/bfbc22.png" class=im_g alt="image">Battlefield Bad company 2<br> <input type=checkbox name="jeux[]" value=lol><img src="Images/lol2.png" class=im_g alt="image">League of Legend<br> <input type=checkbox name="jeux[]" value=gta_san_andreas><img src="Images/gta2.png" class=im_g alt="image">GTA San Andreas<br> <input type=checkbox name="jeux[]" value=combat_arms><img src="Images/combat.png" class=im_g alt="image">Combat Arms<br> </td> </tr> <tr> <th>Si autre préciser:</th><td colspan=2> <textarea name="autre_jeu" rows=1 cols=30></textarea></td> <!--<input name="autre_jeu" TYPE=TEXT /></td>--> </tr> <tr> <th>Pays:</th><td colspan=1> <SELECT name="pays" size="1"> <?php //echo "<script language='JavaScript'>alert('on entre ici dans du php')</script> "; mysql_connect("localhost", "root", "") or die(mysql_error( )) ; mysql_select_db("MyDB") or exit(mysql_error( )) ; $result = mysql_query("SELECT NomPays, id FROM pays") or exit(mysql_error( )) ; $i=1; while($row = mysql_fetch_array($result)) { $pays=$row['NomPays']; $i=$row['id']; //echo "<script language='JavaScript'>alert('$pays')</script> "; echo"<OPTION value='$pays'>"; echo $pays; $i++; } ?> </SELECT></td> </tr> <tr> <tr> <td colspan=3 class="bouton"> <input type="reset" value=Reset> <input type="submit" value=Valider name="send"> </td></tr> </table> </form> </body> </html>
Voila pour le code
meme si je pense avoir encore quelques imperfections et des choses qui ne servent a rien
mais si ca peu aider quelqu'un c'est avec plaisir.Si quelqu'un passant par la aurait une amélioration a ajouté il n'y a pas de soucis
Lassé par la pub ? Créez un compte