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 31/08/2007, 17h19   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 58
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 58
Points : 11
Points : 11
Par défaut Adresse e-mail invalide

Bonjour,

Je n'arrive pas à valider mon adresse test (a@a.fr) via ce script :

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
 
 <?
if ( empty($_POST['email']) && isset($_POST['envoyerDonnees']) )
{
echo "<font color='#FF0000'> L'email doit être rempli </font>";
}
if ( !empty($_POST['email']) && !eregi("^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$", $_POST['email']) && isset($_POST['envoyerDonnees']))
{
echo "<font color='#FF0000'> Adresse email invalide </font><br>";
}
?>
 
<tr>
<td> Email :
</td>
<td><input type="text" name="email" size="40">
<!--Mémorisation de la valeur pour prévision rafraichissement de la page -->
<input type="hidden" name="memorisationEmail" value="<? echo $_POST['email']; ?>">
</td>
</tr>
<tr>
<td>
</td>
<td><input type="submit" name="envoyerDonnees" value="Envoyer">
<input type="reset" name="effacer" value="Effacer">
</td>
</tr>
</table>
</form>
ce qui donne : Adresse email invalide

Une idée?

Merci d'avance,
lou64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 19h34   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
La partie {2,} dit qu'il faut au moins deux caractères pour la partie domaine. Si vous voulez modifier en "au moins un", vous pouvez écrire {1,} que l'on écrit habituellement +

PS : les fonctions ereg* s(er)ont dépréciées, il est désormais recommandé d'utiliser les fonctions PCRE (preg_*).
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2007, 15h36   #3
Membre régulier
 
Inscription : mai 2007
Messages : 180
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 180
Points : 82
Points : 82
Cette fonction (avec le fameux pcre apprécié), m'a renvoyé correcte pour le mel "a@a.fr" :

Code :
1
2
3
4
5
6
7
function is_email($Addr) 
  {
   $p = '/^[a-z0-9!#$%&*+-=?^_`{|}~]+(\.[a-z0-9!#$%&*+-=?^_`{|}~]+)*';
   $p.= '@([-a-z0-9]+\.)+([a-z]{2,3}';
   $p.= '|info|arpa|aero|coop|name|museum)$/ix';
   return preg_match($p, $Addr);
  }
cordialement.
gomodo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2007, 21h13   #4
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 58
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 58
Points : 11
Points : 11
Merci bcp, c'est tip top
lou64 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 23h59.


 
 
 
 
Partenaires

Hébergement Web