- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Уважаемые PHP программисты.
Когда в вашу голову приходит замечательная идея реализовать проверку введённого мыльника, ДЫК будьте добры сделайте эту проверку по человечески.
Прохожусь по базе каталогов и 25% сайтов мне выдают ошибку, при введении мыльника xxx-xxx@mail.ru
Прошу вас учитывайте спец.знаки при написании скрипта. Заранее благодарю.
Сам использую вот такой строкой:
preg_match("/^[a-z0-9_.-]{1,20}@(([a-z0-9-]+\.)+(com|net|org|mil|edu|gov|arpa|info|biz|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$/is",$mail))
А я рекомендую просто проверять существование MX-записи на mail-хосте и если она существует, то мыло есть, если нет, то просить ввести правильное мыло.
Самое успешное - это совмещение регулярки и проверки MX.
Но конечно же это не мешает ввести чужое мыло.
ТС, есть подозрение что ваш regexp малость кривоват. Почему вдруг имя почтового ящика у вас ограничено 20 символами? Есть масса длинных имен и фамилий, которые в корпоративных ящиках будут употреблены через точку, типа konstantin.mikhnerovich@bla.bla.com
А вообще, парсинг email адресов на регекспах соответственно RFC задача непростая. На perl есть классический пример, где эта задача решается регулярным выражением длиной в страницу или даже больше.
Вот поиск по сети дал оптимизированный результат: http://examples.oreilly.com/regex/email-opt.pl
Проверка через MX в большинстве случаев намного более сложно реализуется чем какой-нибудь тупой яваскрипт валидатор, и при этом избыточна для задачи. Учитывая кривизну настроек у огромного количества почтовиков для реальной жизни IMHO такая проверка кроме усложнения жизни пользователям сервиса мало что даст.
stealthy хм, да вы правы, мой пример тоже не универсальный.
А примера на PHP нет случаем?
stealthy хм, да вы правы, мой пример тоже не универсальный.
Приготовьте успокаивающее или графинчик водки с малосольным огучиком. Сядьте покрепче в кресло. Если вы верующий - прочитайте молитву.
А теперь откройте Mail::RFC822::Address: regexp-based address validation
А примера на PHP нет случаем?
Ну, вообще-то сами регекспы в пределах приведенных примеров одинаковый синтаксис имеют, что на перле, что на PHP.
А теперь откройте Mail::RFC822::Address: regexp-based address validation
Это че-то не то. Оно конечно большое и "внушает", но там же просто тупо повторяется кусок один, столько раз сколько по RFC максимальная глубина поддоменов бывает.
У о'рейли в книге где то был поприкольнее примерчик.
Прочитал много способов, по проверке и понял одно. Она не нужна. Да да, создание такой проверки ошибочно по своей природе!
Если человек хочет, чтобы ему ответили, он введёт свой реальный мыльник т.к. он его знает наизусть и ему не нужна никакая проверка от компьютера т.к. ОН ЕГО ЗНАЕТ и ОН ЕМУ НУЖЕН.
Если человек флудит, то он просто введёт левый правильный мыльник и будет довольным и скрипт его не остановит т.к. скрипт не умеет читать мысли!
Всем спасибо! Я так сказать просветился. Пошёл убирать эту не нужную проверку.
Проверка через MX в большинстве случаев намного более сложно реализуется чем какой-нибудь тупой яваскрипт валидатор, и при этом избыточна для задачи. Учитывая кривизну настроек у огромного количества почтовиков для реальной жизни IMHO такая проверка кроме усложнения жизни пользователям сервиса мало что даст.
Нормально все будет проверяться.....
Этапы проверки...
1.Проверяем есть ли вобще домен...а то есть любители вводить user@site.local
2.Проверяем на MX запись или на A запись....
На perl есть классический пример, где эта задача решается регулярным выражением длиной в страницу или даже больше.
Это выражение решает задачу в общем случае, когда в адрес входит имя и комментарий, типа:
Но в данном случае этот ужас не нужен. К тому же многие частные случаи можно отбросить -- когда вы в последний раз видели почтовые адреса с доставкой через UUCP?
Она не нужна
Вот она, истина! Точно так же, как не нужно вводить емаил дважды (я вот всегда копирую первое написание во второе через буфер). :)