Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.164.100] |
|
Сообщ.
#1
,
|
|
|
Может кто знает почему при проверке майла пользователя таким регулярным выражением: ([0-9a-zA-Z\.-_]+)@([0-9a-zA-Z\.-_]+)
прокатывает следующий майл a@b~!#$\%^.ru Используется функция ereg PHP4.2 |
Сообщ.
#2
,
|
|
|
Все, дошло!
Уже не надо. |
Сообщ.
#3
,
|
|
|
Хорошим тоном считается показать, что именно было неправильно.
Это весьма поучительно, следить за чужими шишками |
Сообщ.
#4
,
|
|
|
Попробуйте обмануть
^[a-z0-9_-]+@([a-z0-9_-]+[\.]?)*([a-z0-9_-]+)\.[a-z0-9]+$ Такая фигня стоит у меня в гостевой книге (http://andyag.far.ru). Только перед ней e-mail переводится в нижний регистр. Хакнет кто-нибудь? :-) |
Сообщ.
#5
,
|
|
|
Вообще то я не настолько крут в рег. выражениях поэтому сделал проще
^([0-9a-zA-Z\.-_]+)@([0-9a-zA-Z\.-_]+) $ 2vot-sorry в след. раз исправлюсь. 2Andyag-спасибо за дополнение (подсказку). |
Сообщ.
#6
,
|
|
|
Кстати может лучше так:
^([a-z0-9A-Z_-]+[\.]?)@([a-z0-9A-Z_-]+[\.]?)*([a-z0-9A-Z_-]+)\.[a-z0-9A-Z]+$ мэйл же может быть таким: Ivan.Ivanov@mail.ru А? |
Сообщ.
#7
,
|
|
|
А Ivan.Ivanov.@mail.ru - не может (или может?), значит надо что-то вроде
^([a-z0-9A-Z_-]+[\.]?)[a-z0-9A-Z_-]+@([a-z0-9A-Z_-]+[\.]?)*([a-z0-9A-Z_-]+)\.[a-z0-9A-Z]+$ :-) |
Сообщ.
#8
,
|
|
|
Вообще-то на майлы типа
Asdf.AdfA@XXX.ru это рег выражение ругается - очевидным образом: no matches "^[a-z0-9_-]+@([a-z0-9_-]+[\.]?)*([a-z0-9_-]+)\.[a-z0-9]+$" Не все случаи рассмотрены(нет точки и заглавных букв) Хотя с заглавными буквами фигня - можно strtolower() сделать. Это выражение тоже не очень ^([a-z0-9A-Z_-]+[\.]?)[a-z0-9A-Z_-]+@([a-z0-9A-Z_-]+[\.]?)*([a-z0-9A-Z_-]+)\.[a-z0-9A-Z]+$ Не пропустит майл типа Ivan.Ivanich.Ivanov@mail.ru Есть предложения по апгрейду или сдадимся на милость пользователя? Кто-же знает сколько точек он наставит. Похоже что правильней всего так: ^([a-z0-9A-Z_-\.])@([a-z0-9A-Z_-\.])*([a-z0-9A-Z_-]+)\.[a-z0-9A-Z]+$ |
Сообщ.
#9
,
|
|
|
Ошибка
Так ^([a-z0-9A-Z_-\.])@([a-z0-9A-Z_-]+[\.]?)*([a-z0-9A-Z_-]+)\.[a-z0-9A-Z]+$ |
Сообщ.
#10
,
|
|
|
Извиняюсь за возможный спам - опять ошибся:
Вот последняя версия: $regmail="^([a-z0-9A-Z\._-]+)@([a-z0-9A-Z_-]+[\.]?)*([a-z0-9A-Z_-]+)\.[a-z0-9A-Z]+$"; |
Сообщ.
#11
,
|
|
|
2Алексей:
В своем сообщении от 16.05.02 20:20:17 я написал, что цитирую: "Только перед ней e-mail переводится в нижний регистр". :-) Регулярные выражения это вообще довольно интересная тема, но только вот можно глаза сломать от этих шаблонов... :-) Насчет проверки e-mail'а в php теперь можно FAQ выпускать... :-) Вобщем, я еще попробую поизвращаться на эту тему. 2All: А, кстати, ни кто не знает номер RFC, где была бы прописана спецификация e-mail'ов? 2vot: Кстати, товарищьчь vot почему еще нету "WWW Masters FAQ"? |
Сообщ.
#12
,
|
|
|
Возьмешься вести его?
|
Сообщ.
#13
,
|
|
|
2Vot:
В принципе, без проблем. И даже с большим удовольствием. Но вот только, не прямо сейчас, а несколько позже... Просто сейчас сессия и все такое. Освобожусь где-то в начале июня. Правда, несколько напрягает, что в этой части форума сейчас всего 53 темы... Нельзя ли пока сделать сложную тему типа "Делаем FAQ - присылайте вопросы и ответы"? |
Сообщ.
#14
,
|
|
|
2Алексей:
Как тебе такая фишка: ^([a-z0-9_-]+[\.]?)*[a-z0-9_-]+@([a-z0-9_-]+[\.]?)*([a-z0-9_-]+)\.[a-z0-9]+$ :-) |
Сообщ.
#15
,
|
|
|
Господи, до чего ж матершинный язык!
|
Сообщ.
#16
,
|
|
|
Смотрится, конечно, впечатляюще, но сказать это довольно трудно... :-)
|
Сообщ.
#17
,
|
|
|
Цитата andyag, 17.05.02, 20:32:39 2Алексей: Как тебе такая фишка: ^([a-z0-9_-]+[\.]?)*[a-z0-9_-]+@([a-z0-9_-]+[\.]?)*([a-z0-9_-]+)\.[a-z0-9]+$ :-) По моему не очень :( Отсекаешь майлы типа xxx.yyy@aaa.bbb.ccc.ru (конец строки) xxx.yyy.zzz@aaa.ru (начало строки) Просто я по работе с таким зверьем встречался Мне кажется оптимально: ^([a-z0-9\._-]+)@([a-z0-9_-]+[\.]?)*([a-z0-9_-]+)\.[a-z0-9]+$ потому что с точками могут быть проблемы. |
Сообщ.
#18
,
|
|
|
2 Andyag Вообще говоря в принципе не угадаешь что вводит пользователь и любая проверка мэйла должна сводиться к исключению полной лажи - случайных ошибок.
Тот кому надо послать тебе ложную информацию в любом случае найдет метод сделать это. Ну прям как в той загадке: Как обмануть человека? - Скажи ему что ты его обманул! Поэтому по большому счету это все конечно изыски и приукрасы - но веселые ;D. 2 vot Раз уж вы хотите создать новый форум то сделайте его по HTML'у а то кучи всяких вопросов касающихся именно HTML льются в разделы JS и W-мастерс. По моему было бы логично. Это так мысли вслух ;) |
Сообщ.
#19
,
|
|
|
2Алексей:
Возможно, я не правильно его вставил. Вот еще раз: "^([a-z0-9_-]+[\.]?)*[a-z0-9_-]+@([a-z0-9_-]+[\.]?)*([a-z0-9_-]+)\.[a-z0-9]+$" Примеры, приведенные тобой им вполне пропускаются: никаго отсечения нет... Можешь попробовать сам: <?php $Email = "xxx.yyy.zzz@aaa.ru"; // "xxx.yyy@aaa.bbb.ccc.ru" if(!ereg("^([a-z0-9_-]+[\.]?)*[a-z0-9_-]+@([a-z0-9_-]+[\.]?)*([a-z0-9_-]+)\.[a-z0-9]+$", $Email)) printf("wrong\n"); else printf("ok\n");?> Создавать новый форум никто не собирался, просто от меня поступило предложение заняться изготовлением FAQ (frequently asked questions) по этому форуму. :-) |
Сообщ.
#20
,
|
|
|
Цитата Алексей, 17.05.02, 22:05:24 2 vot Раз уж вы хотите создать новый форум то сделайте его по HTML'у а то кучи всяких вопросов касающихся именно HTML льются в разделы JS и W-мастерс А как вы посмотрите на объединенный раздел HTML + JavaScript ? Мне кажется, так будет еще более логичней. ы? |
Сообщ.
#21
,
|
|
|
2 Andyag - да нормально работает.
Неплохой метод.. ;) 2 vot - можно и так. |
Сообщ.
#22
,
|
|
|
2 Andyag
Как поправил гостевуху? Оказывается истина рождается не только в споре но и в обсуждении чужих глюков! |
Сообщ.
#23
,
|
|
|
2 Алексей:
В хорошем настроении я полез по FTP править свою гостевуху. Подключился. Нету ни одного файла. Думаю: хакеры. Потом мыло прочитал, хостер говорит: "типа нету нашей рекламы уже довольно долгое время, так что обломись". Вот я и обломился. :-( Наехал на админа: "типа че делать?". Теперь жду ответа... :-( Если разблокируют, повешу их рекламу в размере 1x1 пиксель (см. счетчики на главной странице форума sources.ru снизу) :-) Короче, отстой полный :-( 2 Vot: Ну дык что? Будем делать сложную тему с призывом присылать вопросы и ответы или как? (см. сообщение в этой теме 17.05.02 20:14:59). |
Сообщ.
#24
,
|
|
|
Помнишь когда то обсуждали какой хостинг лучше holm.ru или webservis.ru
Теперь я вообще в непонятках - webservis что требует чтобы ты сам вешал их рекламу?? На holm'е то ребята умнее - там в твой код сразу внедряется ихний баннер. Я тоже попытался вывесить свою пагу - но как увидел это мигающее уродство (баннер) сразу забил... Теперь ничего не вешаю. |
Сообщ.
#25
,
|
|
|
На webservis'е они выдают html-файл с рекламой (там прописан id моего сайта). Этот файл нужно средствами SSI влепить у себя на странице. Но этот файл можно подправить, чтобы типа "<img src='...' width=1 height=1>". Тогда реклама будет идти, сайт будет тормозить, а баннер будет почти не видно. :-)
|
Сообщ.
#26
,
|
|
|
А вообще они смотрят по отношению траффика твоего сайта к траффику их рекламы. Т. е. можно просто взять и подгрузить самому их баннер 500 раз (через тот же SSI), а потом не показывать. Тоже вариант... :-)
|
Сообщ.
#27
,
|
|
|
А ведь мыло может содержать и такие символы: &!*" и т.д.
А ни один из предложенных вариантов такого не пропустит. |
Сообщ.
#28
,
|
|
|
Ну, паталогические случаи можно не рассматривать :D
Такие только в больнице ампутируют |
Сообщ.
#29
,
|
|
|
2 Relan: где ты видел такой изврат? "procter&gamble!!!"@mail*server.org?
|