Автор Тема: Проверка поля  (Прочитано 9043 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн bhor

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 767
  • +0/-0
  • 0
    • Просмотр профиля
Проверка поля
« : 19 Ноября 2001, 11:43:29 »
Есть поле. В него народ вводит свое мыло.
Как проверить мыло ли это, а не блаблабла.
Ну чтобы все было блабла@блабла.бла:super:

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Проверка поля
« Ответ #1 : 19 Ноября 2001, 11:46:05 »

function is_email($string) {
$s = trim(strtolower($string));
return ereg(\'^([a-z0-9_]|\\\\-|\\\\.)+\'.\'@\'.\'(([a-z0-9_]|\\\\-)+\\\\.)+\'.\'[a-z]{2,4}$\', $s);
}
Евгений aka Razor,

Оффлайн bhor

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 767
  • +0/-0
  • 0
    • Просмотр профиля
Проверка поля
« Ответ #2 : 19 Ноября 2001, 11:51:18 »
Спасибо Britva
очень хорошый функцион однако.
Уже втыкнул в страницу.

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Проверка поля
« Ответ #3 : 03 Ноября 2002, 14:50:28 »
Вот что интересует в этой связи.

Мыло я проверяю в два этапа:
1) регулярным выражением
2) проверяю наличие MX-азписей для данного хоста



function check_email($email) {

	
# Check address structure
	
if (!
eregi(\'^([a-z0-9_]|\\-|\\.)+@(([a-z0-9]|\\-)+\\.)+[a-z]{2,4}$\', $email))
	
	
return false; 
	

	
# Check DNS
	

	
list($user, $host) = split("@", $email, 2);
	
if (!getmxrr($host, $mxarr))
	
	
return false;
	

	
return true;
}


Второй пункт пропустит адрес, если указанный хост имеет MX-записи. То есть e-mail типа
shdgj28r3487jhg786@yandex.ru
прокатит, потому что он
а) вполне удовлетворяет регулярному выражению,
б) у яндекса есть MX-записи mx1.yandex.ru и mx2.yandex.ru

А как можно обратиться к этим MXам и "спросить" у них, есть ли у них указанный юзер? Вот это уже была бы полная проверка.

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Проверка поля
« Ответ #4 : 03 Ноября 2002, 19:54:38 »
Цитировать
А как можно обратиться к этим MXам и "спросить" у них, есть ли у них указанный юзер? Вот это уже была бы полная проверка.

Вот бы скрипт написать, чтобы он по мылу вычислял номер телефона и звонил туда, проверял правильность ввода инфы в поле, ну или на худой конец, почтовый адрес узнавал и письмо писал настоящее, с просьбой подтвердить правильность мыла :)
Все болезни от нервов, только сифилис от удовольствия

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Проверка поля
« Ответ #5 : 04 Ноября 2002, 01:00:21 »
Mog.
На этом самом MXе тоже не живой админ ручками отлупы отправляет о несуществующих адресах, правда ведь?

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проверка поля
« Ответ #6 : 04 Ноября 2002, 02:20:37 »
dub
ты можешь обратиться через сокет и эмулировать посылку письма.
НО никто тебе не гарантирует, что юзер пользуется этим мейлом.
Никто тебе не гарантирует, что ОК сервера означает наличие такого юзера.
Никто тебе не гарантирует, что диалог с сервером будет происходить БЫСТРО.

мой тебе совет. Если тебе УЖ ТАК УЖ прямо надо проверять валидность мейла, то поступай старым дедовским способом. Отправляй на него письмо со ссылкой, по которой и проверяешь.

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Проверка поля
« Ответ #7 : 04 Ноября 2002, 08:08:51 »
Цитировать
dub

Я это вообще к тому, что не стоит, может, так упираться с проверкой валидности мыла, ибо верно говорит RomikChef - никто ничего не гарантирует и поступать надо старым дедовским. А можно после заполнения соответствующих полей показать данные юзеру и попросить проверить, а правильно ли заполнил. Если юзеру надо, он введет правильный мейл, ну а если нет, то все равно обманет.
Все болезни от нервов, только сифилис от удовольствия

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Проверка поля
« Ответ #8 : 05 Ноября 2002, 11:32:27 »
RomikChef
Mog.
Согласен.
Конечно, просто послать мейл со ссылкой о подтверждении проще. С точки зрения существования живого юзера.
Но саму по себе задачу проверки существования мыла (согласен, опять же, юзер давно мог забыть об этом мыле или оно вообще может быть чужим - никаких гарантий) интересно было бы решить до конца, то есть именно вступив в диалог с сервером. Просто из любопытства, как это сделать?

Оффлайн Maniac

  • Ума нет - считай коллега
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 844
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Проверка поля
« Ответ #9 : 05 Ноября 2002, 18:10:23 »
Просто из любопытства тебе это никто не скажет. Точнее, почти никто не скажет. В принципе, некоторые серверы при запросе возвращают слова любви о том, что пользователя нет, но не все, далеко не все (скажем, mail.ru молчит, как пленный партизан....). Если интересно вступить в диалог с сервером - fsockopen по 25 порту, MAIL FROM:blabla@bla.ru, RCPT TO:blabla@bla.ru и он тебе скажет ok или не ok по поводу юзера. Опять же, не факт, что это будет правда
TANSTAAFL

Оффлайн dub

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 236
  • +0/-0
  • 0
    • Просмотр профиля
    • http://binartis.com/
Проверка поля
« Ответ #10 : 06 Ноября 2002, 21:20:23 »
Maniac
Ясно.
All
Спасибо.

Оффлайн mar

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 5
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.bio.pu.ru/~mar/
Проверка поля
« Ответ #11 : 16 Марта 2003, 00:16:20 »
а еще все еще бывают на свете uucp-ые адреса. Там уж точно по 25 порту ничего интересного не скажут ;)

Оффлайн alesh

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 97
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.alesh.ru
Проверка поля
« Ответ #12 : 06 Июля 2003, 16:17:06 »
Небольшой скрипт провераяет форму, в том числе на e-mail
http://www.alesh.ru/code/form_check.php

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28