Есть идеи как сделать чекер имейл адресов на существование?
# ROM (01.12.2016 / 13:27)
Есть идеи как сделать чекер имейл адресов на существование?
Нее мне кажется это нереально
# ROM (01.12.2016 / 13:27)
Есть идеи как сделать чекер имейл адресов на существование?
В гугле нашёл
Проверка E-Mail
При помощи регулярных выражений.
Производит проверку домена из белого списка.
Делает тестовый запрос на сервер.
Подходит или нет - посмотришь сам.
ROM,
code (+/-)
/*
Описание: Ни для кого не секрет, что при регистрации аккаунта многие сайты можно обмануть, вводя свой email просто с другим доменом или зоной.
Если Вы являетесь пользователем почты от Яндекса, то у Вашей почты существуют так называемые "зеркала", т.е. адрес Вашей почты может иметь следующий вид:
user@ya.ru
user@yandex.ru
user@yandex.com
и т.д.
Думаю, многие пользователи обманывали таким образом каки-либо сайты, просто напросто меняя последнюю часть адреса email. Многие сайты обычно проверяют на совпадение конкретно тот адрес, который указали Вы, не учитывая при этом другие домены Вашего почтовика.
Я задумался, и решил немного усложнить жизнь таким людям (кстати, я тоже таким являюсь) и накидал небольшую функцию. Правда она расчитана пока что только на пользователей Яндекса.
Если у кого-то есть идеи, как ее преобразовать и улучшить, буду рад увидеть их в комментариях. Возможно у кого-то уже есть подобное и кто-то тоже поделится...
Ну все, меньше слов, больше дела... Смотрим код:
*/
function CheckEmail($email) {
#база доменов, которые являются зеркалами
$baseEmail = array('yandex.com', 'yandex.ua', 'yandex.kz', 'yandex.by', 'ya.ru', 'yandex.ru');
#обрезаем E-mail до символа @
$emailShort = explode('@', $email);
#выбираем имя почтового ящика
$nameEmail = $emailShort[0];
#выбираем домен и зону
$domenAndZona = $emailShort[1];
#ищем домен и зону в нашей базе $baseEmail
if (in_array($domenAndZona, $baseEmail)) {
#если нашелся такой домен с зоной в базе, то проверяем,
#не регистрировался ли уже кто-то с этим email
#кол-во совпадений
$match = 0;
#перебираем базу до конца
foreach ($baseEmail as $domenZona) {
#формируем email
$newEmail = $nameEmail.'@'.$domenZona;
#производим запрос в базу (поиск совпадений)
if (mysql_num_rows(mysql_query("SELECT `id` FROM `users` WHERE `email` = '$newEmail' "smile) > 0)
#если нашли совпадение, то увеличиваем кол-во совпадений
$match++;
}
#если уже регистрировались с этим именем почты, то выдаем false, иначе true
if ($match)
return false;
else
return true;
#если домен не найден в $baseEmail, то выполняем другие действия...
} else {
#вешаем другие проверки...
return true;
}
}
Если правильно понял, то вроде то что надо. Только поправить под джон и чуть код изменить.
ДоХтор, Тоже хотел написать об этом.
mRWiNeT, в твоем варианте скрипт проверяет наличие адреса в своей базе, а ROM нужно (если не ошибаюсь) проверить наличие адреса на почтовом сервере.
ДоХтор, Ну да, пусть автор выбираем сам. Да и вдруг кому-то пригодиться.