Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Perl (http://www.flasher.ru/forum/forumdisplay.php?f=21)
-   -   разбор формы (http://www.flasher.ru/forum/showthread.php?t=27746)

Timofey 27.02.2002 10:37

разбор формы
 
подскажите правильную строку, которая при вводе заменяла
все символы <> на &lt; и &gl; , чтобы кто-нибудь не ввел что-то типа <script> ....

и еще как правильно распознать действительно ли пользователь ввел e-mail адрес,а не что-нибудь другое

WD` 27.02.2002 13:25

$mes=~s/</&lt;/g;
$mes=~s/>/&gt;/g;

а на счет адреса: обычно е-мыло состоит из imya@serv.dom
пожешь проверить на наличие текста до "@", самой @, имени сервера(т.е просто текста) после нее и до ".", самой . ,и 2-4 символа для домена.

Но это, конечно, никакой гарантии не дает.
Просто юзера будут мучать, пока он не введет что-то похожее на е-мыло.:)

Winwolf 27.02.2002 13:36

Недавно в ru.perl , вроде бы, тоже обсуждалась проблема о проверке валидности e-mail
Так там предлагался регэксп весом 8 кб. Но и он не давал полной уверенности :)

Был еще один вариант - написать, что на это мыло будет выслано что-то полезное - там выигрыш какой-то или еще что. Тогда юзер будет сам заинтересован в правильности мыла.
Ты ведь программируешь связку юзер-комп? Значит можно программировать любую из частей. В данном случае происходит программирование юзера :)

Timofey 27.02.2002 19:03

регулярное выражение
 
подскажите плз, самое регулярное выражение для провекри email типа

"наличие текста до "@", самой @, имени сервера(т.е просто текста) после нее и до ".", самой . ,и 2-4 символа для домена.
"
а то у меня с ними пока не очень, а ведь бываю домены и типа
...@mstu.edu.ru т.е. схема немного сложнея

darkone 27.02.2002 20:34

/^(\S+)\@(\S+)\.(\D{2,4})$/

shagren 28.02.2002 10:24

А я юзаю след. код:

Код:

sub checkmail{
    my $mail=$_[0];
    if(($mail=~/(@.*@)|(\.\.)|(\.@)|(^\.)|(\.$)/)||
        (($mail!~/^.+@\[\d+\.\d+\.\d+\.\d+\]/)&&($mail!~/^.+@\w+\.\w+/))){
        return 0;
    }else{
        return 1;
    }
}

Для большинства случаев весьма достаточно.
А то, что написанно ранее не предусматривает такой вариант:
user@[10.12.15.123] :confused:

Кстати, также возможны варианты типа:
name2.name@server.org :p :p

darkone 01.03.2002 00:27

Регэксп я написал по условию:

"наличие текста до "@", самой @, имени сервера(т.е просто текста) после нее и до ".", самой . ,и 2-4 символа для домена"

так что варианты user@127.0.0.1 я просто не рассматривал.

Кста, он нормально отрабатывает строку name1.name2@server.com

shagren 01.03.2002 09:32

>Регэксп я написал по условию:
>
>"наличие текста до "@", самой @, имени сервера(т.е просто
>текста) после нее и до ".", самой . ,и 2-4 символа для домена"

Но заодно не плохо бы предусмотреть и такие варианты как две точки подряд, точка+собака, две собаки в адрессе, собака в начале, точка в конце.
Да и кто знает, что будет с доменными именами через пару лет :)


Часовой пояс GMT +4, время: 10:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.