Валидация e-mail

S
На сайте с 24.08.2015
Offline
74
298

Приветствую!

Подскажите, что добавить в поле с e-mail $errors[вот тут] , чтоб проверить правильность мыла. Вот код, проверяющий заполненность поля, но нужно валидность мыла проверить.

if($_POST['user_email'] == "")   $errors[] = "Неверный e-mail";

if($_POST['user_phone'] == "") $errors[] = "Неверный телефон";
IL
На сайте с 20.04.2007
Offline
435
#1
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )
D.iK.iJ
На сайте с 26.05.2013
Offline
225
#2

Я бы только использовал более корректное

if(!empty($_POST['user_email'])) {
}

Ну и если вам нужна именно функция, то я встречал вот такую

if ($email=="Email" or !preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $email)) {
Адаптивный дизайн в 2 строчки ( https://dikij.com/wm/adaptaciya-saytov.php ). + Принимаю заказы любой сложности ( https://searchengines.guru/ru/forum/926323 ). 💎 Еще я делаю классные кулоны с опалами ( https://mosaicopal.ru/ ).
IL
На сайте с 20.04.2007
Offline
435
#3
DiKiJ:
Ну и если вам нужна именно функция, то я встречал вот такую

Информация по ссылке выше могла бы быть для Вас полезной..


if(!filter_var($_POST['user_email'], FILTER_VALIDATE_EMAIL)) $errors[] = "Неверный e-mail";

Функция filter_var позволяет проверить на корректность не только email, но и, к примеру, домен, URL, IP, MAC..

D.iK.iJ
На сайте с 26.05.2013
Offline
225
#4
ivan-lev:
Информация по ссылке выше могла бы быть для Вас полезной..

Да, filter_var - классная штука, спасибо. Но не единственная, как я и написал. Да и PHP 5.2.0 требует (у меня, например, старее стоял на прошлом хостинге).

Забавно, что при всей крутости спокойно пропустит _j@1.ru как валидный.

IL
На сайте с 20.04.2007
Offline
435
#5
DiKiJ:
Да и PHP 5.2.0 требует (у меня, например, старее стоял на прошлом хостинге)

Щас тут камнями закидают, ибо 5.6 уже не котируется

p.s. обновления до 5.2.* (с версий 5.*.. не четвёрка же там стояла?) включительно относительно безболезненные в 5.3 пошла ломка обратной совместимости..

DiKiJ:
спокойно пропустит _j@1.ru как валидный.

регулярка по RFC (тут, например) говорит, что приведённый пример вполне себе валидный..

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий