Comment valider les e-mails en PHP : regex, filter_var() et API expliqués

DEV - 14/05
Qu'il s'agisse d'e-mails marketing ou transactionnels, la validation de l'adresse e-mail est une nécessité, sinon vous pourriez risquer...

Qu'il s'agisse d'e-mails marketing ou transactionnels, la validation de l'adresse e-mail est une nécessité, sinon vous pourriez mettre en danger la réputation de votre domaine de messagerie.

Ce tutoriel couvre les tenants et aboutissants de la validation des emails PHP et est principalement conçu pour les débutants. Cependant, je suppose que vous possédez déjà les bases de la programmation PHP.

Je voudrais également souligner la différence entre la validation et la vérification des e-mails. La validation concerne le formatage correct d’une adresse e-mail et fait partie de la vérification. Cela peut être fait côté serveur et côté client et je me concentrerai ici sur le côté serveur (pas de JavaScript, HTML, etc.).

Alors passons au codage.

Remarque : Les exemples de scripts sont basés sur PHP 8.3.6 et peuvent ne pas fonctionner sur les versions PHP 7.x.y.

Fonction de validation des emails PHP : filter_var()

Lefiltre_var()La fonction fait partie de l'extension de filtre de PHP, qui fournit un moyen pratique d'effectuer la validation et la désinfection de différents types de données à l'aide d'un seul appel de fonction.

Pour la validation par e-mail,filtre_var()offre une méthode simple et fiable pour évaluer rapidement si une adresse e-mail est valide selon les normes PHP. Par exemple, vous pouvez l'intégrer à la validation du formulaire de courrier électronique sur votre site Web.

Ici, je ne couvrirai pas les éléments du frontend, les champs de saisie et tout le reste. J'ai déjà créé un guide complet de validation de formulaire PHP, alors n'hésitez pas à le consulter.

Quoi qu'il en soit, leFILTER_SANITIZE_EMAIL(dans le cadre de la fonction « filter_var ») est conçu pour supprimer les caractères non autorisés dans les adresses e-mail. Cela comprend, sans toutefois s'y limiter :

  • Les espaces,
  • Virgules
  • Certains caractères spéciaux (/, |, #, etc.)

L'objectif principal du nettoyage des entrées de courrier électronique est de garantir que les données sont propres et sûres pour être traitées ou stockées. Ceci est important lorsque les données sont affichées sur une page Web ou incluses dans des requêtes de base de données. La raison en est que cela aide à prévenir les attaques par injection XSS (Cross-Site Scripting) et SQL.

Voici un exemple pratique de la manière de nettoyer une entrée de courrier électronique à l'aide defiltre_var():

?php // Example email input $userInputEmail = "[email protected]
Loading...