Проверка E-mail адреса с помощью PHP

В этом уроке я Вам покажу, как проверить, является ли действительным электронный адрес. Когда Вы регистрируетесь на сайте, обычно идет проверка электронного адреса, который Вы ввели в соответствующее поле. Это можно сделать с помощью регулярных выражений. Нам нужно только проверить совпадает ли введенный электронный адрес с регулярными выражениями.

ereg("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email);

В этот момент проверяется только строка, но не выводит ошибку. Так что в следующим действием нам нужно сделать вывод ошибки. Если строка не совпадает с регулярными выражениями, то возвращается логическое значение.


 if (eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]", $email)) { 
 return FALSE; 
 }
 

Это основные методы проверки. Но иногда пользователи пишут вроде правильно, например, 123@123.123. Такого адреса не существует. И для этого мы будем проверять имя домена после @ на реальность ввода доменного имени. Делаем проверку на существование MX записи для этого домена, а затем проверяем, если порт 25 закрыт – это нам гарантирует, что домен используеться.


 list($Username, $Domain) = split("@",$email);
 if(getmxrr($Domain, $MXHost)) {
 return TRUE;
 } else {
 if(fsockopen($Domain, 25, $errno, $errstr, 30)) {
 return TRUE; 
 } else {
 return FALSE; 
 }
 }
 

Для облечения работы, последние два выражение запишем в виде функции. После создания функции, мы можем ее использовать снова и снова.


 function checkEmail($email) {
 if(eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]",$email)) {
 return FALSE;
 }
 list($Username, $Domain) = split("@",$email);
 if(getmxrr($Domain, $MXHost)) {
 return TRUE;
 } else {
 if(fsockopen($Domain, 25, $errno, $errstr, 30)) {
 return TRUE; 
 } else {
 return FALSE; 
 }
 }
 }
 

Теперь все, что нам требуется, это проверить наш код. Для этого пропишем маленький код. Когда Вы хотите сделать проверку электронного адреса, просо введите электронный адрес, как значение функции.


 if(checkEmail(johndoe@example.com) == FALSE) {
 echo "E-mail адрес не правильный.";
 } else {
 echo "E-mail адрес правильный.";
 }
 

Вот и все! Пользуйтесь!

Понравился урок? Добавьте его к себе в закладки.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *