форма email: правильность написания адреса

flashgirl

Новичок
форма email: правильность написания адреса

решила написать свою форму отправки на email (готовые не подошли) - написала, но есть один нюанс. нужно, чтобы если поле "email" заполнено не верно, скрипт не отправлял бы форму, а просил бы заполнить поле правильно. "правильность" заключается не просто в том, чтобы поле не оставалось пустым (это все я уже написала), а в том, чтобы email вводился четко [email protected] (то есть если в поле ввести просто набор букв, форма бы все равно не отправлялась).
научите, как сотворить....:rolleyes:
 

SelenIT

IT-лунатик :)
Основной инструмент для решения этой задачи - PHP FAQ: Регулярные выражения..

Не лишней будет и проверка на стороне клиента средствами JavaScript - например, прицепить к форме что-то вроде
Код:
... onsubmit="if(!this.email.value.match(/^[a-z0-9._]{1,}@[a-z0-9_\-]{2,}[a-z0-9_.\-]{0,}\.[a-z]{2,6}$/gi))
{ alert('Введите правильный e-mail!');return false }"
 

$OMEGA

Guest
Вот простенькое рег выражение:
PHP:
 if (!preg_match("/[-0-9a-z_]+@[-0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
       {
          $action = "";
          $error = $error."<LI> Неверно введен е-mail.&nbsр Введите e-mail
          в виде <i>[email protected]</i> \n";
        }
не забудь экранировать спец символы!
 

FANTAzeRus

Guest
А вот посложнее ...
if(!preg_match("/^[a-z0-9_-]{1,30}@(([a-z0-9-]+\.)+(com|net|org|mil|"."edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-"."9]{1,3}\.[0-9]{1,3})$/is",$email)) echo 'Не корректно заполнен <b>E-Mail</b>';
 

Azy

Новичок
FANTAzeRus
А если типа [email protected]?
Точка - вполне допустимы зверь до @.
Так что я думаю в первая часть лучше бдет выглядеть так:
...[a-z0-9_-]+[\.a-z0-9_-]*@...
 

flashgirl

Новичок
Azy, ага, это я учла :)

а вот еще вопрос: в каком случае выкидывается сообщение "скрипту не были переданы параметры"? у меня вчера форма работала, а сегодня вот такая лажа выскакивает... я понимаю, если бы что-то было написано не правильно в скрипте или с сервером ерунда, но 1) я ничего не меняла в нем после последней проверки 2) с сервером все нормально - другие скрипты выполняются. в чем здесь дело? :(
 

Nimous

Guest
flashgirl
Может у тебя на серваке неожиданно поменяли, например,
register_globals с on а off?

Ты как в скрипте из формы параметры принимаешь?

Если простыми переменными (типа $user, $email и т.д.),
то попробуй исправить на $_GET['user'], или $_POST['user'].
Обращайся к глобальным массивам.

Если дело не в этом, то не знаю ... :)
 

Eugeniy

Новичок
странно, обычно в таких случаях сразу посылают... в поиск...
наверное от пола зависит :)
 
Сверху