Вход Регистрация
* TRUEтень

Проверка Email

  1. function CheckEmail($email) {
  2.  
  3. #база доменов, которые являются зеркалами
  4. $baseEmail = array('yandex.com', 'yandex.ua', 'yandex.kz', 'yandex.by', 'ya.ru', 'yandex.ru');
  5.  
  6. #обрезаем E-mail до символа @
  7. $emailShort = explode('@', $email);
  8.  
  9. #выбираем имя почтового ящика
  10. $nameEmail = $emailShort[0];
  11.  
  12. #выбираем домен и зону
  13. $domenAndZona = $emailShort[1];
  14.  
  15. #ищем домен и зону в нашей базе $baseEmail
  16. if (in_array($domenAndZona, $baseEmail)) {
  17. #если нашелся такой домен с зоной в базе, то проверяем,
  18. #не регистрировался ли уже кто-то с этим email
  19.  
  20. #кол-во совпадений
  21. $match = 0;
  22.  
  23. #перебираем базу до конца
  24. foreach ($baseEmail as $domenZona) {
  25.  
  26. #формируем email
  27. $newEmail = $nameEmail.'@'.$domenZona;
  28.  
  29. #производим запрос в базу (поиск совпадений)
  30. if (mysql_num_rows(mysql_query("SELECT `id` FROM `users` WHERE `email` = '$newEmail' ")) > 0)
  31. #если нашли совпадение, то увеличиваем кол-во совпадений
  32. $match++;
  33.  
  34. }
  35.  
  36. #если уже регистрировались с этим именем почты, то выдаем false, иначе true
  37. if ($match)
  38. return false;
  39. else
  40. return true;
  41.  
  42.  
  43. #если домен не найден в $baseEmail, то выполняем другие действия...
  44. } else {
  45.  
  46. #вешаем другие проверки...
  47. return true;
  48.  
  49. }
  50. }
  51.  
  52.  
  53. Пример использования:
  54. $x = CheckEmail('wapmister@yandex.by');
  55.  
  56. if ($x) echo 'Такого Email не зарегистрировано.';
  57. else
  58. echo 'Такой Email уже зарегистрирован!';
» Описание: Ни для кого не секрет, что при регистрации аккаунта многие сайты можно обмануть, вводя свой email просто с другим доменом или зоной.
Если Вы являетесь пользователем почты от Яндекса, то у Вашей почты существуют так называемые "зеркала", т.е. адрес Вашей почты может иметь следующий вид:
user@ya.ru
user@yandex.ru
user@yandex.com
и т.д

Думаю, многие пользователи обманывали таким образом каки-либо сайты, просто напросто меняя последнюю часть адреса email. Многие сайты обычно проверяют на совпадение конкретно тот адрес, который указали Вы, не учитывая при этом другие домены Вашего почтовика.

Я задумался, и решил немного усложнить жизнь таким людям (кстати, я тоже таким являюсь) и накидал небольшую функцию. Правда она расчитана пока что только на пользователей Яндекса.

Если у кого-то есть идеи, как ее преобразовать и улучшить, буду рад увидеть их в комментариях. Возможно у кого-то уже есть подобное и кто-то тоже поделится...

Ну все, меньше слов, больше дела...

P.S.
Для тех, кто не понял, функция возвращает true - в том случае,
если все хорошо, т.е. если такого email нет в нашей базе($baseEmail),
ну и соответственно возвращает false, в случае, если такой email там есть.
» Время добавления: 19 Дек 2014 в 09:23
» Посмотров: 1089
» textarea
» Рейтинг: [+1 | -0]
Комментарии [0]
Онлайн: 3
Реклама