Вниз  PHP и мелкие вопросы
- 11.05.2012 / 21:44
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Однако она пропускает ящики и второго и третьего доменного уровня, но если требуется допускать только второго то можно сделать это как нибудь так:
  1. $pos = mb_strpos($mail, '@');
  2. $domain = mb_substr($mail, $pos+1);
  3. if(substr_count($domain, '.') > 1)
  4. {
  5.   echo 'неверное мыло';
  6. }
Примечание: сотрите mb_ если не используете mb_string или кодите в виндовой кодировке.

Изменено web_demon (11.05 / 21:45) (всего 1 раз)
- 11.05.2012 / 22:17
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
web_demon, :shok: ничего себе. И что же оно там может учитывать, кроме више перечисленных тонкостей? Просто интерестно
- 11.05.2012 / 22:19
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
web_demon, можно ведь проверить количество точок, или вы самом мыле до @ можно также точки ставить? Если да, то можно пропускать только одну точку после @
- 11.05.2012 / 22:28
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
  1. preg_match("/^[-_a-zA-Z0-9]+@{1}[-a-zA-Z0-9]+.{1}[-a-zA-Z0-9]+$/", $error)
Это норм? Впринципе пропускает только второго уровня домены. Но я с точкой там не уверен, так как точка это метасимвол, а как ее задействовать как простой символ. Может конечно я и правильно сделал?
- 11.05.2012 / 22:32
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
  1. function ValidEmail($error)
  2. {
  3. if (!preg_match("/^[-_a-zA-Z0-9]+@{1}[-a-zA-Z0-9]+.{1}[-a-zA-Z0-9]+$/", $error)) return $error_v.='E-mail має невірний формат.';
  4. }
Переменная $error у меня инициализирована, тогда в функцию можно не дописывать
  1. else return $error.="";
Оно и так возварять ничего не будет?
- 11.05.2012 / 22:32
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Да, до собачки можно использовать точки, например в гугловском мыле. Чтобы использовать точку как простой символ, поставь перед ней обратный слэш.
- 11.05.2012 / 22:35
web_demon
  Супервизор

web_demon 
Сейчас: Offline
Переменная $error у меня инициализированаЗато $error_v нет.
- 11.05.2012 / 22:35
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
Ну тогда вот код, который учитывает впринципи все тонкости мыла:
  1. preg_match("/^[.-_a-zA-Z0-9]+@{1}[-a-zA-Z0-9]+\.{1}[-a-zA-Z0-9]+$/", $error)
Эм, там где @ и точка {1} нужно вообще?
- 11.05.2012 / 22:36
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
web_demon, это переменная у меня должна быть глобальной, но вместо нее буду тот же $error использовать. Просто хотел пост изменить, но не успел, ты уже написал
- 11.05.2012 / 22:38
Dinisimys1
  Пользователь

Dinisimys1 
Сейчас: Offline
Если точнее вопрос задать, то должна ли функция обязательно что-то возвращать?
Наверх  Всего сообщений: 4740
Фильтровать сообщения
Поиск по теме
Файлы топика (129)