Автор Тема: Проверка правильности e-maila!  (Прочитано 6876 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Strannik

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проверка правильности e-maila!
« : 07 Апреля 2004, 01:11:47 »
Вот проверяю правильность введенного e-maila в форме,но мне пишет неправильно,если до собаки идет имя с "_" !
(пример: puper_mail@vasia.com)
Помогите плиз исправить код ниже дабі избежать этого:
if (!eregi("^([a-z,0-9])+@([a-z,0-9])+(.([a-z,0-9])+([a-z,0-9]))+$",$mail)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Проверка правильности e-maila!
« Ответ #1 : 07 Апреля 2004, 01:20:07 »
Вот регексп, который меня еще не подводил (взято с pear::html::quickForm):
if (!preg_match(\'/^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$/\', $email)) {
   echo "неправильно введен e-mail";
}
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проверка правильности e-maila!
« Ответ #2 : 09 Апреля 2004, 16:47:27 »
Макс

чего то твой скрипт не заработал :(
пишет:
Warning: Compilation failed: range out of order in character class at offset 14

вот весь скрипт(на всяк. случай):
" METHOD="POST">
">



If($email<>"") {

   if (!preg_match(\'/^([a-zA-Z0-9_-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([a-zA-Z0-9-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$/\', $email)) {
   echo "неправильно введен e-mail";
   }
}
 ?>

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Проверка правильности e-maila!
« Ответ #3 : 09 Апреля 2004, 16:51:48 »
Поставь перед точкой в квадратных скобках символ \\.

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Проверка правильности e-maila!
« Ответ #4 : 09 Апреля 2004, 17:02:34 »
Наверное форум опять что-то свое добавил. Вот исходный регексп:
\'/^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$/\'

PS
найти его можно в коде pear::html::quickForm
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Проверка правильности e-maila!
« Ответ #5 : 09 Апреля 2004, 17:06:54 »
Форум, видимо, слеши порезал =)

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проверка правильности e-maila!
« Ответ #6 : 09 Апреля 2004, 17:39:25 »
hanslinger

спасибо, заработало.

а что такое: коде pear::html::quickForm  ?

второй раз встречаю, но не понимаю, че это и где его искать.

Спасибо

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Проверка правильности e-maila!
« Ответ #7 : 09 Апреля 2004, 17:47:45 »
http://pear.php.net
Кстати, перед "-" тоже поставь \\. Почитай ман про регулярные выражения.

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проверка правильности e-maila!
« Ответ #8 : 09 Апреля 2004, 21:16:32 »
так вроде - это не служебный символ. и я чего-то не нашел, куда воткнуть еще один слэш, о котором ты пишешь:(

А про мануал: его еще понять надо. О чем там написано. Часто примеров нет. А без примера не доходит никак.
Вон по шелу хотел демп к mysql закачать. Так и в голову не пришло, что -pXXX это p надо оставлять, и что если оставлять, то между ним и паролем пробел ставить не надо :)

Оффлайн Strannik

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 8
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проверка правильности e-maila!
« Ответ #9 : 10 Апреля 2004, 00:46:04 »
Не знаю как у вас, а у меня работает только без всяких слешов!
В таком виде:
eregi("^([a-z,A-Z,0-9,_,-,.])+@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([a-z,A-Z,0-9,-,]+.)+))([a-z,A-Z]{2,4}|[0-9]{1,3})(]?)+$", $UserEmail))

Все нормпльно, а вот в словах ПЕРЕД собакой с тире(-) типа Vasya-Pupkin@vaisia.net пишет ошибку (при чем если писать _ или . то все нормально)! Пробовал ставить слеш, но не пашет!
What\'s the heck? Что же делать?

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Проверка правильности e-maila!
« Ответ #10 : 10 Апреля 2004, 01:41:21 »
Strannik
твой код я не пробовал, а вот тот, что сказал hanslinger - обрабатывает все правильно. даже твоего Vasya-Pupkin@vaisia.net

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Проверка правильности e-maila!
« Ответ #11 : 10 Апреля 2004, 07:39:01 »
Как же это не служебный символ, когда "-" - определяет диапазон символов? В мане про регулярки написано настолько доходчиво, что понял даже я.

Strannik а со слешами не работает? :)

Вообще, я пользуюсь таким регекспом (составил даже сам!):

$domain_pattern
="(ru|com|org|net|biz|info|pl|de|uk|ua|am|sk|gov|edu|lv)";
preg_match("/^([.a-zA-Z_0-9]+)\\\\@((([a-zA-Z_0-9]+)\\\\.)+)\\\\b".$domain_pattern."\\\\b$/",$mail);

Оффлайн Sniper

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 86
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.40000.ru
Проверка правильности e-maila!
« Ответ #12 : 13 Апреля 2004, 19:37:19 »
if (!eregi("^[a-zA-Z0-9_]+@[a-zA-Z0-9\\-]+\\.[a-zA-Z0-9\\-\\.]+$"$mail)) {
print 
"емайл неправильный!!!"
}
Пока играет музыка - танцуй...

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Проверка правильности e-maila!
« Ответ #13 : 13 Апреля 2004, 19:57:24 »
Sniper
как тебе такой емайл: "----@------.-----."? Твой Eregi его проглотит и не задумается даже.

Оффлайн FreeSpace

  • Штатный лодырь
  • Ветеран
  • *****
  • Сообщений: 613
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.infinity.com.ua
Проверка правильности e-maila!
« Ответ #14 : 13 Апреля 2004, 21:16:39 »
Sniper
Никогда не понимал людей, которые пишут eregi и при этом в выражении ставят "[A-Za-z]".
Не говоря уже про то, что есть намного более шустрое семейство функций preg_*
Программирование - это единственное искусство, которое способно воплотить столь уникальное сочетание эстетики и функциональности.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28