|
|
|
| Вообщем делаю следующий образом , но при отправке все равно выводит ошибку к примеру на такой тип е-mail : mail@mail-i.ru(не нравится дефис после @)/ И еще помогите сделать проверку что бы в поле не писали русскими буквами.
function emailOK($str)
{
$badChars = "[ ]+| |\+|=|[|]|{|}|`|\(|\)|,|;|:|!|<|>|%|\*|/|'|\"|~|\?|#|\\$|\\&|\\^|www[.]";
return (eregi($badChars,$str));
}
if ( !(eregi("([a-z0-9_\-\.])+@([a-z0-9_\-\.])+\.([a-z0-9_\-\.])+",$email)) || emailOK($email)):
$errorheader = "<p class=\"TABLETEXT\"><b>ОШИБКА: НЕПРАВИЛЬНЫЙ АДРЕС E-MAIL</b></p>";
$errormessage = "<p class=\"TEXT\">Введенный вами адрес e-mail (<a href=\"mailto:$email\">$email</a>) содержит
недопустимые символы или имеет неправильный формат.</p>
<p class=\"TEXT\">Вы можете выполнить следующие действия:</p>";
Спасибо заранее | |
|
|
|
|
|
|
|
для: Speaker
(24.01.2007 в 16:57)
| | a-z тут он и так русские не пропустит
а насчет дефиса... может убрать \ перед ним
и я бы заменил последний + на {2,6}
так как самый короткий известный мне домен это ru а самый длинный это museum | |
|
|
|
|
|
|
|
для: Speaker
(24.01.2007 в 16:57)
| | может я и ошибаюсь но во всяком случае в preg_match выражение надо засовывать например в / | |
|
|
|
|
|
|
|
|
для: cheops
(25.01.2007 в 00:28)
| | Согласен с cheops. Выражение вида
“/^[-0-9a-z_]+@[-0-9a-z_^\.]+\.[a-z]{2,6}$/i”
почти идеальное.
Однако оно позволяет в имени домена ввести подряд более одной точки. Чтобы это не происходило, можно выражение модифицировать:
'/^[-0-9a-z_]+@([-0-9a-z_]+\.)+[a-z]{2,6}$/i' | |
|
|
|
|
|
|
|
для: LazY
(26.01.2007 в 07:29)
| | Ну, если уж Вы согласны с cheops'ом, то не дайте помереть серым, расскажите , зачем в поле домена знак подчеркивания? | |
|
|
|
|
|
|
|
для: Trianon
(26.01.2007 в 09:57)
| | Для красоты :))) | |
|
|
|