[PHP] Expression régulière adresse postale

Fermé
Signaler
Messages postés
195
Date d'inscription
dimanche 12 novembre 2006
Statut
Membre
Dernière intervention
18 juillet 2011
-
 stephrav -
Bonjour,



je fais un formulaire pour mon site, et je veux tester l'adresse postale.

Voilà ma fonction :

$adresse = "^([0-9a-z'àâéèêôùûçÀÂÉÈÔÙÛÇ\s-]{1,50})$";
if(eregi($adresse, $_POST['adresse'])){


}

J'ai essayer avec Ereg(et les majuscules), preg_match... je ne vois pas où est mon erreur.
Quelqu'un pour m'aider?

Laura.

7 réponses

Messages postés
388
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
15 novembre 2011
53
Bonjour,

il faut que tu ajoutes des "/" avant et après ton expression, sinon php ne la reconnait pas.

essaye avec :


$adresse = "/^([0-9a-z'àâéèêôùûçÀÂÉÈÔÙÛÇ\s-]{1,50})$/"; 


Voila :)
apres je n'ai pas vérifié que ton expression régulière marche, mais sans les "/" ca ne peut pas marcher ^^

En espérant que ca te débloque :)
0
Messages postés
195
Date d'inscription
dimanche 12 novembre 2006
Statut
Membre
Dernière intervention
18 juillet 2011
109
Merci beaucoup de ta réponse, mais les slashs ne sont pas obligatoires, j'ai d'autres expressions régulières juste avant qui fonctionne sans les slashs!

Par doute, j'ai quand même essayé de les mettres mais ça ne change rien :(

$adresse = "/^([\w'àâéèêôùûçÀÂÉÈÔÙÛÇ\s-]*$/";

Une autre idée?
0
Messages postés
388
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
15 novembre 2011
53
Tu as un message d'erreur ? ou l'expression régulière ne trouve tout simplement pas ?
0
Messages postés
195
Date d'inscription
dimanche 12 novembre 2006
Statut
Membre
Dernière intervention
18 juillet 2011
109
Je ne comprend pas pourquoi, mais maintenant elle fonctionne...

Pour info, pour les futurs chercheurs :

$adresse = "^([0-9a-z'àâéèêôùûçÀÂÉÈÔÙÛÇ\s-]{1,50})$";

Voilà.
Merci à toi Defouille :) Bonne soirée
0
Messages postés
195
Date d'inscription
dimanche 12 novembre 2006
Statut
Membre
Dernière intervention
18 juillet 2011
109
Hum, je retire, ça ne fonctionne plus -_-

C'est incompréhensible.

Donc voilà mon code :
if(eregi($adresse, $_POST['adresse'])){
                  //traitement
}else{
			$erreur = $erreur . "adresse, ";
		}

echo $erreur;


Et cela affiche : "adresse"

Encore une idée? :$
0

if(eregi($adresse, $_POST['adresse'])){
//traitement
}else{
$erreur = $erreur . $_POST['adresse'].", ";
}

echo $erreur;
0
Hello,

J'ai testé ton script qui fonctionne bien :

function controle_adresse($addr)
{
	$adresse = "^([0-9a-z'àâéèêôùûçÀÂÉÈÔÙÛÇ\s-]{1,50})$"; 
	if(mb_eregi($adresse, $addr)){ return true; }
	if(!mb_eregi($adresse, $addr)){ return false; }
}


Comme tu peux le voir, j'utilise la fonction mb_eregi car eregi est désormais obsolète sur php >5.3 si j'ai bien compris.

if($adresse2=="" || !controle_adresse($adresse2))
		{ // MESSAGE ERREUR }
else { // TRAITEMENT }


En tout cas moi ca marche :).
0