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
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"