Bonjour,

Je m'excuse si c'est la question qu'on vous pose toutes les 5 minutes mais ça fait toute cette après midi que je cherche sans trouver.

J'ai un formulaire d'inscription basique (nom, prénom, mail, sexe, date de naissance et mot de passe). Je me sers d'ajax pour récupérer le tout mais le preg_match de mon fichier php se comporte bizarrement. Il ne reconnait pas quand il y a du texte dans le mot de passe et le mail n'est jamais reconnu juste. Je ne m'y connais pas très bien en regex et les codes trouvés sur le net n'y ont rien changé. Pouvez vous me dire ce qui ne va pas dans la vérification? Un tout grand merci.

formulaire d'inscription
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
<form method="POST" onsubmit="inscription(this.nom.value,this.prenom.value,this.mdp.value,this.mail.value,this.sexe.value,this.annee.value,this.mois.value,this.jour.value);return false" action="">
				<label>nom:</label><input type="text" value="" name="nom" /> <br />
				<label>prénom:</label><input type="text" value="" name="prenom" /> <br />
				<label>passe:</label><input type="password" value="" name="mdp" /> <br />
				<label>mail:</label><input type="text" value="" name="mail" /> <br />
				<label>Je suis:</label>
				<select id="sexe" name="sexe" class="select">
					<option value="1">Femme</option>
					<option value="2">Homme</option>
				</select> <br />
				<label>Date de naissance:</label>
					<?php
					// Variable qui ajoutera l'attribut selected de la liste déroulante
					$selected = '';
 
					// Parcours du tableau
					echo '<select name="jour" id="jour">',"\n";
					for($i=1; $i<=31; $i++)	{
						// Affichage de la ligne
						echo "\t",'<option value="', $i ,'"', $selected ,'>', $i ,'</option>',"\n";
						// Remise à zéro de $selected
						$selected='';
					}
					echo '</select>',"\n";
					?>
				<select name="mois" id="mois">
					<option value="1">janvier</option>
					<option value="2">février</option>
					<option value="3">mars</option>
					<option value="4">avril</option>
					<option value="5">mai</option>
					<option value="6">juin</option>
					<option value="7">juillet</option>
					<option value="8">août</option>
					<option value="9">septembre</option>
					<option value="10">octobre</option>
					<option value="11">novembre</option>
					<option value="12">décembre</option>
				</select> 
					<?php
					// Variable qui ajoutera l'attribut selected de la liste déroulante
					$selected = '';
 
					// Parcours du tableau
					echo '<select name="annees" id="annee">',"\n";
					for($i=date(Y); $i>=1900; $i--)	{
						// Affichage de la ligne
						echo "\t",'<option value="', $i ,'"', $selected ,'>', $i ,'</option>',"\n";
						// Remise à zéro de $selected
						$selected='';
					}
					echo '</select>',"\n";
					?>
				<br />
				<input type="submit" value="Je m'inscris tout de suite">
			</form>
vérification du formulaire
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
 
// Chargement de la page
	$nom = "$_POST[nom]";
	$prenom = "$_POST[prenom]";
	$mdp = "$_POST[mdp]";
	$mail = "$_POST[mail]";
	$sexe = "$_POST[sexe]";
	$jour = "$_POST[jour]";
	$mois = "$_POST[mois]";
	$annee = "$_POST[annee]";
	$datedenaissance = "$annee/$mois/$jour";
 
	$erreurs=array();//tableau qui stocke les erreurs.
 
// vérification formulaire	
	if(!preg_match('/^[ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ0-9a-z-A-Z_\.\-\/\+\{\}]{2,45}$/',$nom)){
		$erreurs[]='Nom: seulement des lettres, des chiffres et des nombres et -_. entre 4 et 20 caractères';
	}
 
	if(!preg_match('/^[ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ0-9a-z-A-Z_\.\-\/\+\{\}]{2,45}$/',$prenom)){
		$erreurs[]='Prénom: seulement des lettres, des chiffres et des nombres et -_. entre 4 et 20 caractères';
	}
 
	if(!preg_match('/^[0-9a-z-A-Z_\.\-\/\+\{\}]{2,45}$/',$mdp)) {
		$erreurs[]='Mot de passe: seulement des lettres, des chiffres et des nombres et -_. entre 4 et 20 caractères';
	}
 
	if(!preg_match('[/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i]',$mail)){
		$erreurs[]='Veuillez entrer un email valide';
	}
	else {
		// vérification des doublons
		$verif_mail = mysql_num_rows(MYSQL_QUERY("SELECT * FROM users WHERE mail='$mail'"));
 
		if ($verif_mail!=0){
			$erreurs[] = "Cette adresse mail figure déjà dans notre base de donnée";
		}
	}
 
	if(count($erreurs)==0) {
code perso ici
}