Section courante

A propos

Section administrative du site

La validation des courriels est un des problèmes les plus complexe à mettre en oeuvre lorsqu'on envoie un formulaire. Et pour cause, il faut tenir compte des règles suivantes :

A l'aide du code source PHP suivant, vous trouverez la réponse que vous souhaitez :

Essayer maintenant !
  1. <?php
  2. function BooleanToStr($X) {
  3.      if($X) return "true";
  4.        else return "false";
  5. }
  6.  
  7. function IsEmail($Email) {  
  8.     if(($Email == null) || (strlen($Email) == 0)) return false;
  9.      for($I = 0; $I < strlen($Email); $I++) {   
  10.         switch($Email[$I]) {
  11.                case " ":case "\t":case "\n":case "\r":
  12.                case "(":case ")":case ":":case ",":case "/":case "'":case "\"":
  13.                case "~":case "`":case "!":case "#":case "$":case "%":case "^":
  14.                case "&":case "*":case "+":case "=":case "[":case "]":case "{":
  15.                case "}":case "|":case "\\":case "?":case "<":case ">":
  16.                      return false;
  17.           }
  18.     }
  19.      
  20.      for($ArobasFound = 0, $I = 1; $I < strlen($Email); $I++) if($Email[$I] == "@") {
  21.           $ArobasFound++;
  22.           if($ArobasFound == 1) $AfterArobas = $I;
  23.      }
  24.     if($ArobasFound!=1) return false;
  25.     $AfterArobas += 2;
  26.     while (($AfterArobas < strlen($Email)) && ($Email[$AfterArobas] != ".")) $AfterArobas++;
  27.     if(($AfterArobas >= strlen($Email) - 1) || ($Email[$AfterArobas] != ".")) return false;
  28.     else return true;
  29. }
  30.  
  31. echo "Courriel «abc» est valide: ".BooleanToStr(IsEmail("abc"))."<BR>";
  32. echo "Courriel «@» est valide: ".BooleanToStr(IsEmail("@"))."<BR>";
  33. echo "Courriel «@abc.abc» est valide: ".BooleanToStr(IsEmail("@abc.abc"))."<BR>";
  34. echo "Courriel «abc@gladir.com» est valide: ".BooleanToStr(IsEmail("abc@gladir.com"))."<BR>";
  35. echo "Courriel «abc@@gladir.com» est valide: ".BooleanToStr(IsEmail("abc@@gladir.com"))."<BR>";
  36. echo "Courriel «abc@gl][adir.com» est valide: ".BooleanToStr(IsEmail("abc@gl][adir.com"))."<BR>"; 
  37. ?>

on obtiendra le résultat suivant :

Courriel «abc» est valide: false
Courriel «@» est valide: false
Courriel «@abc.abc» est valide: false
Courriel «abc@gladir.com» est valide: true
Courriel «abc@@gladir.com» est valide: false
Courriel «abc@gl][adir.com» est valide: false

Expression régulière

L'exemple suivant permet d'effectuer une recherche en utilisant une expression régulière. Elle est aussi plus restrictive au niveau des caractères accentués.

  1. <?php
  2. function BooleanToStr($X) {
  3.     return $X?"true":"false";
  4. }
  5.  
  6. function IsEmail($email) {
  7.     return preg_match("/^([0-9a-zA-Z\@\-\.\_']+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i", $email);
  8. }
  9.  
  10. echo "Courriel «abc» est valide: ".BooleanToStr(IsEmail("abc"))."<BR>";
  11. echo "Courriel «@» est valide: ".BooleanToStr(IsEmail("@"))."<BR>";
  12. echo "Courriel «@abc.abc» est valide: ".BooleanToStr(IsEmail("@abc.abc"))."<BR>";
  13. echo "Courriel «abc@gladir.com» est valide: ".BooleanToStr(IsEmail("abc@gladir.com"))."<BR>";
  14. echo "Courriel «abc@gléadir.com» est valide: ".BooleanToStr(IsEmail("abc@gléadir.com"))."<BR>";
  15. echo "Courriel «aébc@gladir.com» est valide: ".BooleanToStr(IsEmail("aébc@gladir.com"))."<BR>";
  16. echo "Courriel «abc@@gladir.com» est valide: ".BooleanToStr(IsEmail("abc@@gladir.com"))."<BR>";
  17. echo "Courriel «abc@gl][adir.com» est valide: ".BooleanToStr(IsEmail("abc@gl][adir.com"))."<BR>"; 
  18. echo "Courriel «abc@gl][adir.com» est valide: ".BooleanToStr(IsEmail("abc@gl][adir.com"))."<BR>"; 
  19. ?>

on obtiendra le résultat suivant :

Courriel «abc» est valide: false
Courriel «@» est valide: false
Courriel «@abc.abc» est valide: false
Courriel «abc@gladir.com» est valide: true
Courriel «abc@gléadir.com» est valide: false
Courriel «aébc@gladir.com» est valide: false
Courriel «abc@@gladir.com» est valide: true
Courriel «abc@gl][adir.com» est valide: false
Courriel «abc@gl][adir.com» est valide: false


Dernière mise à jour : Dimanche, le 5 avril 2015