PHP walidacja e-mail: sprawdzanie poprawności adresu


PHP walidacja e-mail w PHP

W tej lekcji pokażę, jak można sprawdzić, czy użytkownik podał poprawny adres e-mail.

Niestety nigdy nie mamy pewności, że podany adres jej prawdziwy, możemy jednak kierować się pewnymi wytycznymi:

  • W adresie musi znaleźć się znak małpy @, dodatkowo może pojawić się tylko jeden raz
  • Mogą występować tylko litery (duże i małe), cyfry, znak podkreślnika, myślnik oraz kropka
  • Kropka musi pojawić się przynajmniej raz, później niż znak @
  • Końcówka domeny musi zawierać się w przedziale od 2 (np. „PL”) do 4 (np. „INFO”) znaków

Więdząc to, możemy spróbować utworzyć takie wyrażenie regularne, które wyłapie nam wszystkie adresy pasujące do tego wzorca:

<?php

// przypisanie adresu e-mail do zmiennej
$email = $_POST['email'];

// formuła prawidłowego adresu e-mail 
$sprawdz = '/^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9\-.]+\.[a-zA-Z]{2,4}$/';

if(preg_match($sprawdz, $email))
  echo 'Podano prawidłowy adres e-mail';
else
  echo 'Adres e-mail nieprawidłowy';

?>

UPDATE 2016:
Powyższy skrypt może już nie działać prawidłowo, gdyż pojawiło się dużo nowych rozszerzeń domen, dłuższych od czterech znaków. Przykładowo mamy teraz domenę .website lub .restaurant, które są znacznie dłuższe. Najlepiej po prostu zrezygnować ze sprawdzania długości rozszerzenia domeny.

Wyżej wypisane wyrażenie regularne musi zostać spełnione, jeśli adres jest poprawny. Są jednak takie adresy, które również będą pasować, będąc jednocześnie złe. Dodatkowo nie mamy pewności, czy wpisana domena istnieje. Jest to jednak dobry sposób, by wstępnie zweryfikować podawane dane. Należy mieć też na uwadze, że adres e-mail może być wpisany poprawnie, ale z poziomu PHP nie mamy możliwości sprawdzić, czy istnieje (nawet jeśli domena jest zarejestrowana, adres może nie być utworzony).

Sprawdzaniem adresu e-mail zakończę ten rozdział. W sieci istnieje wiele tutoriali poświęconych wyrażeniom regularnym. Jeśli nie jesteś w stanie stworzyć wymaganej formuły, radzę odwiedzić któryś z nich. W tym kursie przedstawione zostały jedynie podstawy konstrukcji, by dalsze poszerzanie wiedzy nie stanowiło problemu.

Czas teraz podsumować nabytą wiedzę. Tradycyjnie, w kolejnej lekcji czekają na Ciebie praktyczne zagadnienia, wraz z propozycjami samodzielnych ćwiczeń. Zapraszam!

Spis lekcji w rozdziale czwartym

Poprzednia lekcja: Sprawdzanie poprawności imienia i nazwiska Następna lekcja: Podsumowanie działu czwartego

Kurs PHP i MySQL w formie wygodnego e-booka?

ZA DARMOPobieram kurs w formie e-booka