Проверка валидности url и email

-faqer-

Я только учусь
Проверка валидности url и email

Использую после сабмита формы следующее
PHP:
if(!preg_match("/^(http:\/\/([a-zA-Z0-9-])+(\.([a-zA-Z0-9-])+)*(\.([a-zA-Z0-9~\/])+)+)?$/",$site)){ $flag = 1; $err['site']="Адес в формате [url]http://www.somehost.com[/url]";}
if(!preg_match("/^(([a-zA-Z0-9_-])+\@([a-zA-Z0-9-])+(\.([a-zA-Z])+)+)?$/",$mail)){ $flag = 1; $err['mail']="Адес в формате [email][email protected][/email]";}

if (isset($flag))
{
.....
exit;
}
.....
Регулярные писал сам, вроде работает нормально, но явно чего-то не продумал
Поправьте пожалуйста, если есть ошибка
 

Demiurg

Guest
email может быть [email protected]


$flag = 0;
if...{$flag=1; ...}

if($flag)
{
}

а вообще регулярное выражение проверяющее валидность email занимает 6 кб.
 

-faqer-

Я только учусь
Справедливо поправлю
а вообще регулярное выражение проверяющее валидность email занимает 6 кб.
Может быть, не мерял, а это собсно к чему

И еще может где-то можно стандартный паттерн найти
Если да, киньте ссылку плиз
 

Demiurg

Guest
>Может быть, не мерял, а это собсно к чему
а ты его видел ?
>Если да, киньте ссылку плиз
php.spb.ru
 

-faqer-

Я только учусь

ForJest

- свежая кровь
[m]preg_match[/m]
Там тебе будет всегда доступный проверенный паттерн в нотисах. Про новые домены наслышан :).
 

Crazy

Developer
Джентельмены, у меня всего один вопрос: зачем?

Ну то есть чем все эти сложные выражение принципиально лучше, чем "/^\S+@\S+$/"? :)
 

Demiurg

Guest
>Джентельмены, у меня всего один вопрос: зачем?
не знаю :)

вообще , если это регистрация, то надо отсылать человеку письмо, с прозьбой подтвердить регистрацию.
 

Crazy

Developer
Воистину. Наличие собаки в адресе есть смысл проверять -- некоторые пользователи (особенно -- привыкшие к внутрикорпоративной почте) пишут только левую часть -- до "@". Им нужно напомнить, что лажа вышла.

IMHO, ровно этим и ограничивается осмысленность проверки синтаксиса e-mail'а.

Но если уж приспичило проверять с такой дотошностью, то просто создается конечный автомат -- это будет куда проще и яснее, чем такие кошмарные regexp'ы... :)
 

Eugene Bond

sudo rm - rf /
Для проверки УРЛ можно обратиться к серверу по этому адресу и посмотреть ответ. Станет ясно есть ли такой УРЛ...
 
Сверху