Vérifier un format d'adresse e-mail avec Filter

Rechercher

Vérifier un format d'adresse e-mail avec Filter

  • Par Emacs
  • 2 commentaires
  • 6 909 lectures
  • De PHP Group
  • RSS -  Atom

Les adresses e-mails sont chose courante sur le Web et bien évidemment nous avons affaire avec elles dans la plupart des applications Web : espaces membres, envois de newsletters, webmails... Lorsque l'on récupère une adresse courriel (via un formulaire par exemple), il faut tout d'abord s'assurer que son format est conforme à un motif bien précis.

Le langage PHP introduit dans sa version 5.2 PECL l'extension Filter qui, comme son nom l'indique en français, permet de filtrer et de nettoyer des variables de types différents. Le type "Email" figure parmi eux.

Cette portion de code explique donc comment vérifier le format d'une adresse e-mail au moyen de l'extension Filter de PHP.

Portion de code

<?php
  // Définition de l'adresse e-mail à tester
  $sEmailNonTestee = 'toto.root@mon-serveur.com';
  /*
  // Test du format de l'email
  // filter_var() retourne soit l'email si correct
  // ou FALSE en cas d'erreur
  // Le second paramètre est une constante de Filter
  // indiquant quel filtre appliquer sur la donnée
  // transmise en premier paramètre
  */
  if(false !== filter_var($sEmailNonTestee, FILTER_VALIDATE_EMAIL))
  {
    echo 'Cette adresse e-mail est correcte !';
  }
  else
  {
    echo 'Cette adresse e-mail est fausse !';
  }
?>

Les commentaires

1. Par Francis le 29/01/2008 09:31

Bonjour,
Il serait intéressant d'expliquer sur quoi se base la fonction filter_var() avec le filtre FILTER_VALIDATE_EMAIL pour déterminer si une occurence est valide ou pas.
Est-ce que la fonction vérifie uniquement si le domaine existe, est-ce qu'elle vérifie si le MX est existant sur le domaine donné, est-ce qu'elle vérifie uniquement la syntaxe de l'occurence, etc.

2. Par J_lennon le 30/12/2008 19:54

Bonjour,

A ton avis?
"pour déterminer si une occurence est valide ou pas.
Est-ce que la fonction vérifie uniquement si le domaine existe, est-ce qu'elle vérifie si le MX est existant sur le domaine donné" > Trop lourd!
"est-ce qu'elle vérifie uniquement la syntaxe de l'occurence" > BINGO

Je viens de remarquer que le message a été déposé il y a maintenant un an, ca pourra servir à quelqu'un d'autre!