Jesteś tutaj: webmade.org >> porady >> php + mysql
autor: Mateusz Bogolubow, ostatnia modyfikacja: 2007-02-23
Aby sprawdzić poprawność adresu e-mail możemy skorzystać z dobrodziejstw wyrażeń regularnych. Funkcja weryfikująca ValidEmail()(zwraca TRUE gdy adres jest poprawny oraz FALSE gdy tak nie jest) powinna wyglądać mniej więcej tak:
function ValidEmail($email) { if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)) { return false; } return true; }
W celu sprawdzenia jakiegoś adresu e-mail piszemy:
if (ValidEmail("kowalski@wp.pl")) echo "Poprawny adres e-mail"; else echo "Nie poprawy adres e-mail";
Niestety ta metoda nie zawsze się sprawdza. Możemy skorzystać z funkcji verifyEmail(), która pochodzi z FAQ grupy dyskusyjnej pl.comp.lang.php. Funkcja ta nie tylko sprawdza poprawność wpisanego adresu e-mail, ale również czy domena istnieje i czy posiada prawidłowy rekord MX.
function verifyEmail($email) { $wholeexp = '/^(.+?)@(([a-z0-9\.-]+?)\.[a-z]{2,5})$/i'; $userexp = "/^[a-z0-9\~\\!\#\$\%\&\(\)\-\_\+\=\[\]\;\:\'\"\,\.\/]+$/i"; if (preg_match($wholeexp, $email, $regs)) { $username = $regs[1]; $host = $regs[2]; if (checkdnsrr($host, MX)) { if (preg_match($userexp, $username)) { return true; } else { return false; } } else { return false; } } else { return false; } }
Trzeba jednak wziąć pod uwagę fakt, że funkcja checkdnsrr() nie jest zaimplementowana na platformie Windows, gdzie funkcja ta nie będzie działać poprawnie.
Mateusz Bogolubow
szukaj: weryfikacja adresu e-mail sprawdzanie poprawności adresu e-mail PHP
Osoby czytające tę publikację przeglądały również:
© 2004-2008 copyright by webmade.org