Walidacja adresu email

Praktycznie na wszystkich stronach www znajdują się formularze. Bardzo często są to formularze kontaktowe, ale często spotykane są także formularze zamówień, np. w sklepach internetowych, albo formularze rejestracji. Na większości z nich jednym z obowiązkowych pól jest pole na adres email użytkownika lub klienta. W takiej sytuacji, jeżeli pobieramy takie dane od użytkownika musimy założyć, że może nam on je podać nieprawidłowe. Samo sprawdzenie czy użytkownik cokolwiek wpisał jest bardzo proste, ale jak sprawdzić poprawność adresu email?

Poniższa funkcja języka PHP, sprawdza czy podany ciąg znaków jest adresem e-mail oraz czy podana domena w ogóle istnieje, co zwiększa znacznie prawdopodobieństwo, że adres email faktycznie istnieje:

function validateEmail($email) {
     if(preg_match('/^[a-zA-Z0-9][a-zA-Z0-9\._\-&!?#=]*@/', $email)) {
          //początek adresu do znaku @ jest poprawny
          //usuwamy wszystkie znaki znajdujące się przed @ oraz znak @, tak aby została sama domena 
          $url = preg_replace('/^[a-zA-Z0-9][a-zA-Z0-9\._\-&!?#=]*@/', '', $email);
          //sprawdzamy czy domena jest zarejestrowana
          if (!checkdnsrr($url)) {
               //domena nie jest zarejestrowana - adres e-mail jest nie poprawny
               $error = false;
          }
          else {
               //domena jest zarejestrowana - adres e-mail jest poprawny
               $error = true;
          }
     }
     else {
          //adres e-mail jest nie poprawny, ponieważ jego początek zawiera nie dozwolone znaki
          $error = false;
     }
     return $error;
}

Funkcję należy wywołać w standardowy sposób, podając jako argument adres email do sprawdzenia. Funkcja zwróci true jeśli jest on prawidłowy oraz false w przeciwnym wypadku.

Ta strona używa ciasteczek (cookies), dzięki którym nasz serwis może działać lepiej. Więcej informacji

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close