PHP – sprawdzenie czy e-mail jest poprawny

Data dodania: jakiś czas temu
reklama

mail

W dzisiejszym poradniku zajmiemy się niby prostym, ale bardzo praktycznym zagadnieniem. Sprawdzimy, czy e-mail podawany przez użytkownika jest poprawny.

Konieczność sprawdzenia danych wprowadzanych przez użytkowników jest bardzo ważna. Skrypt ten jest szczególnie przydatny przy różnego rodzaju rejestracjach.

Sposób pierwszy – wyrażenia regularne

Popatrz na poniższy kod PHP:
 
 

<?php
//skrypt pobrany z konkretny.pl

$email = "test@example.com"; //testowany e-mail
$szablon = '/^[a-zA-Z0-9\.\-_]+\@[a-zA-Z0-9\.\-_]+\.[a-z]{2,6}$/D'; //wyrażenie regularne, na podstawie którego testowany jest e-mail

$wyniksprawdzenia = preg_match($szablon,$email); //funkcja, która odpowiada za testowanie danych na podstawie szablonu

if($wyniksprawdzenia) //sprawdzamy
{
	echo 'Mail jest poprawny';
}
else
{
	echo 'Mail jest niepoprawny';
}

?>

Wyjaśnienie

W linii 4 przypisujemy do zmiennej $email wartość w postaci testowanego adresu e-mail. Możecie wpisać tutaj co chcecie by sprawdzić czy skrypt poprawnie interpretuje wprowadzony e-mail.

W linii 5 budujemy szablon, na podstawie którego funkcja preg_match będzie sprawdzać poprawność wprowadzonych danych. Nie przejmuj się, jeśli masz problem ze zrozumieniem „krzaków” tam wypisanych, wielu ma z tym problem. Postaram się jednak na chłopski rozum wyjaśnić za co odpowiadają dane krzaki:

  • znaki ukośnika /^ oraz $/D rozpoczynają oraz kończą wyrażenie regularne
  • pierwsza część [a-zA-Z0-9\.\-_] oznacza „dowolny ciąg znaków”, w naszym przypadku jest to test
  • następnie wymagamy, by po dowolnych znakach wystąpił znak @ i kolejne dowolne znaki za co odpowiada następna część wyrażenia: +\@[a-zA-Z0-9\.\-_] czyli w naszym przypadku to @example
  • następnie powinna pojawić się kropka oraz ostatnia część adresu. Dodatkowo oznaczyliśmy, że końcówka musi mieć minimum 2 znaki, natomiast nie więcej niż 6 znaków. Odpowiada za to ostatnia część wyrażenia +\.[a-z]{2,6} w tym przykładzie jest to .com

W linii 6 podstawiamy nasze dane do naszego „sprawdzacza”. Nasza zmienna $wyniksprawdzenia przyjmuje teraz wartość prawdziwą 1 lub fałszywą 0. Od ostatecznego potwierdzenia czy sprawdzany e-mail jest prawdziwy czy fałszywy odpowiada nasz if w linii 8.

Jak widzicie, nasza prosta funkcja sprawdza czy wpisany e-mail jest poprawny. Nie jest ona jednak doskonała. Jeśli kiedyś powstaną końcówki domen, które mają więcej niż 6 znaków skrypt w tym momencie uzna, że e-mail nie jest prawdziwy. Warto samemu poeksperymentować.

Sposób 2 – filter_var

Od jakiegoś czasu można to zrobić jeszcze prościej dzięki wbudowanej w PHP funkcji filter_var. Poniżej przykład:

<?php
$email = "test@example.com"; //testowany e-mail

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Ten e-mail jest poprawny";
}
else{
    echo "Ten e-mail jest niepoprawny";
}
?>

Ten sposób prostszy, prawda? Sam go używam. Podałem jednak 2, ponieważ warto wiedzieć cokolwiek na temat wyrażeń regularnych. Powodzenia! 🙂


PS. jeśli masz konto na Facebooku, polub fanpage Konkretnego. Dzięki!




Tagi: , , , , ,

Bądź miły! Uwielbiam wchodzić z Wami w dyskusję, proszę jednak, by krytyka była konstruktywna. Komentarz, który ma na celu obrażać mnie lub moich Czytelników może zostać usunięty. Tutaj każdy ma czuć się dobrze :)

Jestem także tutaj


YouTube - ostatni film z Filek.TV

YouTube - ostatni film z Konkretny.pl

Discord

Chcesz ze mną pograć?
Wbijaj na mój Discord

O blogu

Konkretny.pl to blog technologiczny, którego tematyka porusza kilka specjalistycznych dziedzin. Jednymi z najważniejszych są zagadnienia dotyczące technologii i Internetu, ale nie brakuje tutaj również typowych tekstów dotyczących finansów, marketingu, programowania, a nawet gier komputerowych. Życzę przyjemnej lektury :)


Social Media

 



© 2011-2024 Konkretny.pl. Wszelkie prawa zastrzeżone.

Wszystkie posty piszę w dobrej wierze. Nie odpowiadam jednak za wszelkie szkody, treść komentarzy oraz autentyczność informacji na stronie. Informuję, że publikowane pliki zostały sprawdzone programem antywirusowym w aktualnej wersji. Nie biorę jednak odpowiedzialności, jeśli coś się stanie.

| O mnie |   | Polityka Prywatności |   | Kontakt |