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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
<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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
 
<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 <a href="mailto:nananere@machin.quelqu">nananere@machin.quelqu</a>echose
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 javascript ou Ajax peuvent faire cela, mais comment les utiliser intelligemment pour ne pas faire ramer les appels à la base de données?? Car les exemples trouvés sur le net ne me parle pas vraiment ou alors ralentissent le formulaire...
Merci d'avance