11.05.2012 / 21:44 | |
web_demon Супервизор Сейчас: Offline
Регистрация: 11.01.2010
| Однако она пропускает ящики и второго и третьего доменного уровня, но если требуется допускать только второго то можно сделать это как нибудь так: $pos = mb_strpos($mail, '@');
$domain = mb_substr($mail, $pos+1);
if(substr_count($domain, '.') > 1)
{
echo 'неверное мыло';
}
Примечание: сотрите mb_ если не используете mb_string или кодите в виндовой кодировке. Изменено web_demon (11.05 / 21:45) (всего 1 раз) |
11.05.2012 / 22:17 | |
Dinisimys1 Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.01.2011
| web_demon, ничего себе. И что же оно там может учитывать, кроме више перечисленных тонкостей? Просто интерестно |
11.05.2012 / 22:19 | |
Dinisimys1 Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.01.2011
| web_demon, можно ведь проверить количество точок, или вы самом мыле до @ можно также точки ставить? Если да, то можно пропускать только одну точку после @
|
11.05.2012 / 22:28 | |
Dinisimys1 Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.01.2011
| preg_match("/^[-_a-zA-Z0-9]+@{1}[-a-zA-Z0-9]+.{1}[-a-zA-Z0-9]+$/", $error)
Это норм? Впринципе пропускает только второго уровня домены. Но я с точкой там не уверен, так как точка это метасимвол, а как ее задействовать как простой символ. Может конечно я и правильно сделал? |
11.05.2012 / 22:32 | |
Dinisimys1 Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.01.2011
| function ValidEmail($error)
{
if (!preg_match("/^[-_a-zA-Z0-9]+@{1}[-a-zA-Z0-9]+.{1}[-a-zA-Z0-9]+$/", $error)) return $error_v.='E-mail має невірний формат.';
}
Переменная $error у меня инициализирована, тогда в функцию можно не дописывать Оно и так возварять ничего не будет? |
11.05.2012 / 22:32 | |
web_demon Супервизор Сейчас: Offline
Регистрация: 11.01.2010
| Да, до собачки можно использовать точки, например в гугловском мыле. Чтобы использовать точку как простой символ, поставь перед ней обратный слэш.
|
11.05.2012 / 22:35 | |
web_demon Супервизор Сейчас: Offline
Регистрация: 11.01.2010
| Переменная $error у меня инициализированаЗато $error_v нет.
|
11.05.2012 / 22:35 | |
Dinisimys1 Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.01.2011
| Ну тогда вот код, который учитывает впринципи все тонкости мыла: preg_match("/^[.-_a-zA-Z0-9]+@{1}[-a-zA-Z0-9]+\.{1}[-a-zA-Z0-9]+$/", $error)
Эм, там где @ и точка {1} нужно вообще? |
11.05.2012 / 22:36 | |
Dinisimys1 Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.01.2011
| web_demon, это переменная у меня должна быть глобальной, но вместо нее буду тот же $error использовать. Просто хотел пост изменить, но не успел, ты уже написал
|
11.05.2012 / 22:38 | |
Dinisimys1 Пользователь Сейчас: Offline
Имя: Денис Регистрация: 23.01.2011
| Если точнее вопрос задать, то должна ли функция обязательно что-то возвращать?
|