Witaj, Gościu O nas | Kontakt | Mapa
Wortal Forum PHPEdia.pl Planeta Kubek IRC Przetestuj się!

Weryfikacja adresu e-mail w PHP

Użycie getmxrr() w celu walidacji

Możliwe jest zastosowanie funkcji PHP getmxrr() w celu dokonania walidacji domeny z adresu e-mail podobną jaką otrzymaliśmy stosując checkdnsrr(). Ta funkcja pobiera rekord MX odpowiadający podanej nazwie hosta.Prototyp tej funkcji:

int getmxrr ( string hostname, array mxhosts [, array weight]);

Prezentując ta sieciową funkcję nietrudno dostrzec, że moglibyśmy przepisać naszą funkcję checkEmail() wykorzystując getmxrr() zamiast checkdnsrr() przy walidacji domeny adresu e-mail. Ulepszona wersję podajemy poniżej:

function checkEmail($email) {
 if(preg_match("/^( [a-zA-Z0-9] )+( [a-zA-Z0-9\._-] )*@( [a-zA-Z0-9_-] )+( [a-zA-Z0-9\._-] +)+$/" , $email)){
  list($username,$domain)=split('@',$email);
  if(!getmxrr ($domain,$mxhosts)){
   return false;
  }
  return true;
 }
 return false;
}

Odwołujemy się do niej w ten sposób:

$email = trim($_POST['email']);   
if(!checkEmail($email)) {  
echo 'Invalid email address!';
}
else {
 echo 'Email address is valid';
}

Ten kod wygląda bardzo podobnie do poprzedniego, w którym użyliśmy checkdnsrr(). Jest tylko jedna, subtelna różnica polegająca na zawarciu getmxrr() w funkcji checkEmail(). To bardzo proste i zarazem dobre rozwiązanie. Możemy tylko wyrazić wdzięczność, bo zestaw funkcji sieciowych w PHP jest nieocenionym narzędziem w przypadku walidacji domen, do których przynależą adresy e-mail.

Jak dotąd, na początku zdefiniowaliśmy sobie funkcje, sprawdziliśmy format adresu e-mail na podstawie wzorca i wreszcie sprawdziliśmy, czy domena adresu rzeczywiście istnieje. Dokładnie rzecz ujmując to rozwiązanie ciągle nie jest kompletne, ponieważ nie wiemy nadal czy nazwa użytkownika jest poprawna. Jak możemy rozwiązać ten problem?

Informacje na podobny temat:
Wasze opinie
Wszystkie opinie użytkowników: (0)
Mentax.pl    NQ.pl- serwery z dodatkiem świętego spokoju...   
O nas | Kontakt | Mapa serwisu
Copyright (c) 2003-2021 php.pl    Wszystkie prawa zastrzeżone    Powered by eZ publish Content Management System eZ publish Content Management System