BlueGEEK Journal

Accueil > Manip’s > PHP > Leçons PHP > Valider une Adresse E-Mail

PHP/Expressions Régulières

Valider une Adresse E-Mail

preg_match()

mercredi 10 mai 2006, par bluegyn_spip

Ce code peut être testé ici

Est résumé dans la fonction is_email :

- Qui prend en argument la chaine E-MAIL saisie

- Retourne VRAI si cete chaine est formatée comme un EMAIL

- Et FAUX sinon


Le code fait appel au contrôleur de syntaxe des expressions dites "régulières" (EREG) et s’écrit sur une seule ligne plutôt compacte

return(preg_match(

"/^([a-z0-9_]|\-|\.)+@(([a-z0-9_]|\-)+\.)+[a-z]2,3\$/i",

$email)) ;


<?



function is_email($email)

{

// ========================================================

// ^ = Commence par

// Au moins

// Un Nombre, Une Lettre, Un Tiret ou un Point

// SUIVI DE

// Arobase suivi de

// Au moins Un Nombre, Une Lettre, Un Tiret ou un Point

// SUIVI DE

// 1 point

// SUIVI DE

// Une chaine de 2 ou 3 caractères.

// ========================================================

return(

 preg_match(

   "/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,3}\$/i",

   $email));

}; // END



$mode=isset($_GET['mode']) ? $_GET['mode'] : 0;

$email=isset($_GET['email']) ? $_GET['email'] : "";



switch ($mode)

{

// 000000000000000000000000000000000000000000000

case 0:

echo '

<form name="F" action="verif_email.php">

<input type="hidden" name="mode" value="1">

Entrez votre EMAIL<input type="text" name="email" value="'.$email.'">

<input type="submit">

</form>

';



break;



// 11111111111111111111111111111111111111111111111

case 1:





if (!is_email($email))

{

 echo '

 <script>alert("Adresse E-mail Invalide\n\nVeuillez corriger les donnees")</script>

 ';

 // Passe les arguments par l'url et remplit le tableau GET

 echo '

 <script>location="verif_email.php?mode=0&email='.$email.'"</script>;

 ';

 

}

else

{

 print "<br>$email = Adresse E-mail Valide";

};



break;

}; // switch



?>

Voir en ligne : Expressions Rationnelles


On notera l’appel au Javascript,

- Afin d’afficher une boite d’erreur

- Et de relancer simplement la page, par l’instruction "location"