Jak sprawdzić poprawność adresu e-mail?
Z PHPEdia.pl
Prosta weryfikacja
Aby zweryfikować, czy dany ciąg znaków jest adresem e-mailem, wystarczy sprawdzić, czy zawiera znak at (@).
<?php function valid_email($str) { if(strstr($str,'@')) { return true; } return false; } $strGoodEmail='foo@bar.com'; $strBadEmail='foobar.com'; valid_email($strGoodEmail); // zwroci true valid_email($strBadEmail); //zwroci false ?>
Zaawansowana weryfikacja
Istnieje też możliwość sprawdzenia adresu e-mail pod kątem wszelkich nieprawidłowości:
<?php /** * Funkcja sprawdza poprawność adresu e-mail na podstawie wyrażeń regularnych * i weryfikacji danych z serwera DNS. * * Funkcja nie działa pod systemem Ms Windows! * * @author Bakus <bakus@php.pl> * @param string Adres e-mail do weryfikacji * @return mixed (bool) true gdy adres będzie poprawny, lub komunikat błędu */ function ValidateEmail($email) { $wholeexp = '/^(.+?)@(([a-z0-9\.-]+?)\.[a-z]{2,5})$/i'; $userexp = "/^[a-z0-9\-\_\+\,\.]+$/i"; if (preg_match($wholeexp, $email, $regs)) // EMail jest poprawny składniowo? { $username = $regs[1]; $host = $regs[2]; if (!checkdnsrr($host, "MX")) // Czy serwer obsługuje pocztę? { return "Podany adres jest nieprawidłowy. Przyczyna błędu: Podany serwer nie obsługuje poczty."; }else{ if (!preg_match($userexp, $username)) // Login jest poprawny? { return "Podany adres jest nieprawidłowy. Przyczyna błędu: Login zawiera niedozwolone znaki."; }else{ return true; } } }else{ return "Podany adres nadawcy jest nieprawidłowy."; } } ?>
Jest to element FAQ, czyli zestawienia odpowiedzi na najczęściej zadawane pytania.
Zestawienie: Informacje | Podstawy PHP | Porady praktyczne | Pytania z forum | Bezpieczeństwo
