Ответить Новая тема Новый опрос 
 1,4,4,0 Эмейл недествительный (
SDM
Новичок
Сообщений: 30
Регистрация: 11-01-2020


29-05-2020 17:07
Здравствуйте. нужна ваша помочь. Преста 1,4,4,0

Частенько звонят клиенты по поводу того что в процессе оформления заказа, у них не пропускает эмейл, и пишет "эмейл не действительный", притом бывает с разных почтовых сервисов.

Уже сам проверял:
Эмейл действительный и существует
Ранее не был зарегистрирован на сайте
нету пробелов ни спереди ни сзади (то есть написание корректное)

Как сделать более лайтовую проверку эмейла при оформлением заказа, что бы например сообщал только если эмейл уже зарегистрирован на сайте, а во всех остальных случаях пропускал ?

И как сделать если клиент не заполняет эмейл, то автоматом подставлялась почта "по умолчанию" ?
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


30-05-2020 15:09
Попробуйте изменить правило в методе isEmail, файл /classes/Validate.php:
Код:
return empty($email) OR preg_match('/^[a-z0-9!#$%&\'*+\/=?^`{}|~_-]+[.a-z0-9!#$%&\'*+\/=?^`{}|~_-]*@[a-z0-9]+[._a-z0-9-]*\.[a-z0-9]+$/ui', $email);

на:
Код:
return !empty($email) && preg_match('/^[a-z\p{L}0-9!#$%&\'*+\/=?^`{}|~_-]+[.a-z\p{L}0-9!#$%&\'*+\/=?^`{}|~_-]*@[a-z\p{L}0-9]+(?:[.]?[_a-z\p{L}0-9-])*\.[a-z\p{L}0-9]+$/ui', $email);


Приложите к сообщению эл.адрес не проходящий проверку.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
SDM
Новичок
Сообщений: 30
Регистрация: 11-01-2020


25-02-2021 18:35
Прошлось опять поднять тему.

Код который Вы написали вроде бы как упрощает ситуацию описанную в первом посту.

Но собрав некоторую статистику по отказам эмейл адресов, с ошибкой (эмейл недействительный), пришел к выводу что данный код никак на помог, и отказ происходит только на ОС андроид когда клиент пытается оформить заказ через телефон.

Притом я сам оформлял тестовые заказы с разных телефонов, и все было ок.
Возможно зависит от версии андроида или конкретно от модели телефона.

Как можно исправить такие ошибки.
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


25-02-2021 20:34
Цитата:( SDM @ 25-02-2021 19:35 Смотреть сообщение )
Как можно исправить такие ошибки.

Можно проверять только наличие знака собачки:
Код:
return !empty($email) && strpos($email, '@') !== false;

Также будет полезно переписать в шаблоне input с text на email.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
SDM
Новичок
Сообщений: 30
Регистрация: 11-01-2020


26-02-2021 05:48
Вы имеете ввиду
Код:
<input type="text" class="text" id="email" name="email" value="">

здесь сделать input type="email" ?

А можно еще попросить короткий комментарий по поводу "полезности", что бы не бездумно копи-пастить, а что бы и в нейронам что то оставалось)

Спасибо.


Сообщение отредактировал SDM (26-02-2021 06:49)
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


26-02-2021 14:13
Цитата:( SDM @ 26-02-2021 06:48 Смотреть сообщение )
Вы имеете ввиду
Код:
<input type="text" class="text" id="email" name="email" value="">

здесь сделать input type="email" ?

Верно. При вводе будут доступны только разрешенные для эл.адреса символы и буквы.

По коду выше дал объяснение: проверять только наличие знака собачки.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос