Walidacja adresu e-mail
Jeżeli, zbieramy dane od użytkowników, za pomocą formularzy, zawsze należy zakładać, że informacje, które podają nam internauci są nieprawidłowe. Sprawdzanie czy użytkownik podał swoje imię lub nazwisko jest proste, ale co zrobić kiedy musimy sprawdzić poprawność adresu e-mail?
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.
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; }
Jeżeli ciąg znaków przekazany do funkcji w zmiennej $email jest adresem e-mail, to funkcja zwraca true, a jeżeli nie to false.