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 Visual C++ suivant, vous trouverez la réponse que vous souhaitez :

  1. #include "stdafx.h"
  2. #include "string.h"
  3.  
  4. char * BoolToString(bool value) {
  5.      return value?"true":"false";
  6. }
  7.  
  8. bool IsEmail(const char * Email) {  
  9.     unsigned int ArobasFound,AfterArobas=0,I;
  10.     if(strlen(Email) == 0) return false;
  11.      for(I = 0; I < strlen(Email); I++) {   
  12.         switch(Email[I]) {
  13.                 case ' ':case '\t':case '\n':case '\\r':
  14.                case '(':case ')':case ':':case ',':case '/':case '\\':case '\"':
  15.                case '~':case '`':case '!':case '#':case '$':case '%':case '^':
  16.                case '&':case '*':case '+':case '=':case '[':case ']':case '{':
  17.                case '}':case '|':case '?':case '<':case '>':
  18.                      return false;
  19.           }
  20.     }
  21.  
  22.      for(ArobasFound = 0, I = 1; I < strlen(Email); I++) if(Email[I] == '@') {
  23.           ArobasFound++;
  24.           if(ArobasFound == 1) AfterArobas = I;
  25.      }
  26.     if(ArobasFound!=1) return false;
  27.     AfterArobas += 2;
  28.     while ((AfterArobas < strlen(Email)) && (Email[AfterArobas] != '.')) AfterArobas++;
  29.     if((AfterArobas >= strlen(Email) - 1) || (Email[AfterArobas] != '.')) return false;
  30.     else return true;
  31. }
  32.  
  33. int main(int argc, char* argv[])
  34. {
  35.      printf("Courriel «abc» est valide: %s\n",BoolToString(IsEmail("abc")));
  36.     printf("Courriel «@» est valide: %s\n",BoolToString(IsEmail("@")));
  37.     printf("Courriel «@abc.abc» est valide: %s\n",BoolToString(IsEmail("@abc.abc")));
  38.     printf("Courriel «abc@gladir.com» est valide: %s\n",BoolToString(IsEmail("abc@gladir.com")));
  39.     printf("Courriel «abc@@gladir.com» est valide: %s\n",BoolToString(IsEmail("abc@@gladir.com")));
  40.     printf("Courriel «abc@gl][adir.com» est valide: %s\n",BoolToString(IsEmail("abc@gl][adir.com"))); 
  41.      return 0;
  42. }

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


Dernière mise à jour : Samedi, le 7 avril 2018