Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2007, 11h22   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 20
Détails du profil
Informations personnelles :
Âge : 18

Informations forums :
Inscription : décembre 2007
Messages : 20
Points : 14
Points : 14
Par défaut Problème d'affichage d'un else en cas d'erreur

Bonjour j'ai fait un script d'enregistrement membres avec plein de if indenter sauf que lorsque ca ne marche pas mais else ne s'affiche pas ..
Voici mon code :
Code :
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
<?php
include ("includes/superinclude.php");
$mail = $_POST['mail'];//securisation
$code = (mysql_real_escape_string(htmlspecialchars($_POST['code_postal'])));//securisation
$pass = (mysql_real_escape_string(htmlspecialchars($_POST['password'])));//securisation
$nom = (mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])));//securisation
$code_postal = stripslashes($code);
$password = stripslashes($pass);
$pseudo = stripslashes($nom);
$reponse = mysql_query("SELECT * FROM membres WHERE pseudo = '.$pseudo.' "); //on recuper les membres
$num_rows = mysql_num_rows($reponse);
 
/*Dans ce debut de code je recupere les données par post 
**J'utilise des peties fonctions
**et je recupere le champ dans la bdd ou il ya le pseudo que l'utilisateur
**Le num rows revoi 0 sile pseudo n'est pas choisi et 1 si il existe deja
*/
 
  if (strlen($pseudo) < 15  ) //si pseudo a mois de 15 caracters
    {
	   if (strlen($password) < 15 ) //si le pass a mois de 15 caracters
	     {
				   //if(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#","$mail"))
				   if (preg_match('#@+#','$mail')) //regex pour voir si il contien un arobase
				     {  
 
						    if ($num_rows == 0 )  //si le pseudo n' est pas deja enregistre ...
						   {
			     echo 'Vous etes maintenat membre de notre super communauté Mr ou madame '.$pseudo ; 
                mysql_query("INSERT INTO membres VALUES('','.$pseudo.','.$password.','.$mail.','.$code_postal.')");
				            } else {echo ' Pseudo deja utilisé désolé' ; }
 
				     } else {'Votre mail doit contenir un \'@ \' ';}
 
	     } else {echo 'Votre password est trop grand';}
 
	} else { echo 'Votre pseudo est trop grand';}
	?>
<meta http-equiv="Refresh" content="4;listemembres.php" />
<?php
include ("includes/footer.php");
?>
Merci a tous pour votre aide
Mr[ben] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 11h56   #2
Membre du Club
 
William RICHARD
Inscription : septembre 2007
Messages : 156
Détails du profil
Informations personnelles :
Nom : William RICHARD
Âge : 30
Localisation : France, Aube (Champagne Ardenne)

Informations forums :
Inscription : septembre 2007
Messages : 156
Points : 68
Points : 68
je débute mais je peux te dire qu'il manque un echo
pour le mail doit contenir un @.
__________________
William RICHARD

Développeur web et logiciel, à Troyes, Aube
warwill est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h10   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 20
Détails du profil
Informations personnelles :
Âge : 18

Informations forums :
Inscription : décembre 2007
Messages : 20
Points : 14
Points : 14
Rooofl je suis nul :p
Je corige ca et je vous montre ce new code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  if (strlen($pseudo) <= 15  && strlen($password) <= 15) //si pseudo a mois de 15 caracters
    {				   //if(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#","$mail"))
				   if (preg_match('#@+#','$mail')) //regex pour voir si il contien un arobase
				     {  
 
						    if ($num_rows == 0 )  //si le pseudo n' est pas deja enregistre ...
						   {
			     echo 'Vous etes maintenat membre de notre super communauté Mr ou madame '.$pseudo ; 
                mysql_query("INSERT INTO membres VALUES('','.$pseudo.','.$password.','.$mail.','.$code_postal.')");
				            } 
 
				     } 
	} 
	elseif (strlen($pseudo) > 15 && strlen($password) > 15)
	{ echo 'Votre pseudo et password doivent etre de moins de 15 caracteres' ; }
	elseif (preg_match('#@+ "','$mail') == FALSE )
	{ echo 'Votremail n\'est pas valide' ;  }
	elseif ($num_rows == 1)
	{ echo 'Desolé mauis ce pseudo est deja utilisé'; }
Qui ne marche pas non plus :'(
Mr[ben] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h18   #4
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 630
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 630
Points : 6 232
Points : 6 232
Citation:
Envoyé par Mr[ben] Voir le message
Qui ne marche pas non plus :'(
Qu'est ce qui ne fonctionne pas exactement ??
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h20   #5
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 20
Détails du profil
Informations personnelles :
Âge : 18

Informations forums :
Inscription : décembre 2007
Messages : 20
Points : 14
Points : 14
Bah l'affichage du message d'erreur.
Mais avec ce code ça marche :
Oufff :
Code :
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
<?php
include ("includes/superinclude.php");
$erreur="";  //Initialisation de la variable erreur
$mail = $_POST['mail'];//securisation
$code = (mysql_real_escape_string(htmlspecialchars($_POST['code_postal'])));//securisation
$pass = (mysql_real_escape_string(htmlspecialchars($_POST['password'])));//securisation
$nom = (mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])));//securisation
$code_postal = stripslashes($code);
$password = stripslashes($pass);
$pseudo = stripslashes($nom);
$reponse = mysql_query("SELECT * FROM membres WHERE pseudo = '$pseudo' "); //on recuper les membres
$num_rows = mysql_num_rows($reponse);
 
/*Dans ce debut de code je recupere les données par post
**J'utilise des peties fonctions
**et je recupere le champ dans la bdd ou il ya le pseudo que l'utilisateur
**Le num rows revoi 0 sile pseudo n'est pas choisi et 1 si il existe deja
*/
 
  if (strlen($pseudo) < 15  ) //si pseudo a mois de 15 caracters
    {
           if (strlen($password) < 15 ) //si le pass a moins de 15 caracters
             {
                                   //if(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#","$mail"))
                                   if (preg_match('#@+#','$mail')) //regex pour voir si il contien un arobase
                                     {  
 
                                                    if ($num_rows == 0 )  //si le pseudon' est pas deja enregistre ...
                                                   {
                             echo 'Vous etes maintenat membre de notre super communauté Mr ou madame '.$pseudo ;
                mysql_query("INSERT INTO membres VALUES('','$pseudo','$password','$mail','$code_postal')");
                                            } else {$erreur.= ' Pseudo deja utilisé désolé' ; }
 
                                     } else {$erreur.='Votre mail doit contenir un \'@ \' ';}
 
             } else {$erreur.= 'Votre password est trop grand';}
 
        } else { $erreur.= 'Votre pseudo est trop grand';}
        ?>
<meta http-equiv="Refresh" content="4;listemembres.php" />
<?php
echo $erreur;
include ("includes/footer.php");
?>
Le problème c'est la regex maintenant car quoi que je mette dans mon mail elle m'affiche une erreur
Mr[ben] est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 12h23   #6
Rédacteur/Modérateur
 
Avatar de 12monkeys
 
Homme Dr. Peters
Webmaster
Inscription : novembre 2006
Messages : 3 630
Détails du profil
Informations personnelles :
Nom : Homme Dr. Peters
Âge : 35
Localisation : France, Bas Rhin (Alsace)

Informations professionnelles :
Activité : Webmaster
Secteur : Service public

Informations forums :
Inscription : novembre 2006
Messages : 3 630
Points : 6 232
Points : 6 232
Pour le regex : FAQ

Code :
1
2
3
4
5
6
7
8
9
<?php
$regex = "/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i";
$courriel = "nom@domaine.com";
if (preg_match($regex, $courriel)) {
    echo "L'adresse $courriel est valide";
} else {
    echo "L'adresse $courriel n'est pas valide";
}
?>
__________________
Vous débutez dans la creation de sites web : les bases du html et débuter avec les CSS
Pas de MP pour des questions techniques ! Mode d'emploi du forum ; Règles ; Pensez à la balise code ; Pas de SMS !
Votez pour les messages qui vous ont aidés...
12monkeys est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2007, 14h04   #7
Candidat au titre de Membre du Club
 
Inscription : décembre 2007
Messages : 20
Détails du profil
Informations personnelles :
Âge : 18

Informations forums :
Inscription : décembre 2007
Messages : 20
Points : 14
Points : 14
Code :
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
<?php
include ("includes/superinclude.php");
$erreur="";  //Initialisation de la variable erreur
$mail = $_POST['mail'];//securisation
$code = (mysql_real_escape_string(htmlspecialchars($_POST['code_postal'])));//securisation
$pass = (mysql_real_escape_string(htmlspecialchars($_POST['password'])));//securisation
$nom = (mysql_real_escape_string(htmlspecialchars($_POST['pseudo'])));//securisation
$code_postal = stripslashes($code);
$password = stripslashes($pass);
$pseudo = stripslashes($nom);
$reponse = mysql_query("SELECT * FROM membres WHERE pseudo = '$pseudo' "); //on recuper les membres
$num_rows = mysql_num_rows($reponse);
 
/*Dans ce debut de code je recupere les données par post
**J'utilise des peties fonctions
**et je recupere le champ dans la bdd ou il ya le pseudo que l'utilisateur
**Le num rows revoi 0 sile pseudo n'est pas choisi et 1 si il existe deja
*/
 
  if (strlen($pseudo) < 15  ) //si pseudo a mois de 15 caracters
    {
           if (strlen($password) < 15 ) //si le pass a moins de 15 caracters
             {
                                   //if(!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#","$mail"))
                                  #
                                       if(strpos($mail, '@')) //y a bien un @ dans $mail 
                                     {  
                                             if ([^a-z],)
											 {
                                                    if ($num_rows == 0 )  //si le pseudon' est pas deja enregistre ...
                                                   {
                             echo 'Vous etes maintenat membre de notre super communauté Mr ou madame '.$pseudo ;
                mysql_query("INSERT INTO membres VALUES('','$pseudo','$password','$mail','$code_postal')");
                                            } else {$erreur.= ' Pseudo deja utilisé désolé' ; }
                                          } else { echo 'Votre code postal n\'est pas valide ';}
                                     } else {$erreur.='Votre mail doit contenir un \'@ \' ';}
 
             } else {$erreur.= 'Votre password est trop grand';}
 
        } else { $erreur.= 'Votre pseudo est trop grand';}
        ?>
<meta http-equiv="Refresh" content="4;listemembres.php" />
<?php
echo $erreur;
include ("includes/footer.php");
?>
Voila maintenant ca marche j'ai utilisé une autre fonction :p
Mr[ben] est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h43.


 
 
 
 
Partenaires

Hébergement Web