Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

только english в имя и фамилия


Recommended Posts

Подскажите, может кто сталкивался...

при регистрации, быстром или гостевом заказе, есть проверка поля email на *@*.* (и делается это, как я понял, на уровне php). Можно ли как-то запустить аналогичную проверку на ввод имя, фамилии, адреса доставки только на английском языке ??? Чтоб вместо Ваня можно было писать в поле только Ivan, а вместо Москва только Moscow (или Moskva) и т.д. 

спасибо!

Надіслати
Поділитися на інших сайтах


Да, можно добавить регулярку либо со стороны JS сразу при наборе текста в поле, либо со стороны сервера, чтобы возвращал ошибку когда попытаются уже оформить. А можно добавить оба варианта

Надіслати
Поділитися на інших сайтах


Я считаю, что проверку на кириллические симвлы лучше сделать на JS в шаблоне, а выбор города организовать в виде впадающего списка, сформированного на сервере.

Надіслати
Поділитися на інших сайтах

@esculapra с городом это вы погорячились

а проверку введенных данных всегда нужно проверять на сервере, а не на клиенте.

JS только помешает их ввести, но не запретит их отправить

Надіслати
Поділитися на інших сайтах


1 минуту назад, openprice сказал:

с городом это вы погорячились

а проверку введенных данных всегда нужно проверять на сервере, а не на клиенте.

JS только помешает их ввести, но не запретит их отправить

Во-первых, предустановленный список городов - это нормальная практика.

В-вторых. если использовать для отправки кнопку с типом button а не submit, и организовать проверку на коректность ввода, то форма не отправится.

Надіслати
Поділитися на інших сайтах

1 час назад, openprice сказал:

@esculapra с городом это вы погорячились

а проверку введенных данных всегда нужно проверять на сервере, а не на клиенте.

JS только помешает их ввести, но не запретит их отправить

валидировать реквест можно и нужно и на стороне сервера и фронта

Надіслати
Поділитися на інших сайтах

в некоторых OC3-файлах вижу такое

if ((utf8_strlen($this->request->post['email']) > 96) || !filter_var($this->request->post['email'], FILTER_VALIDATE_EMAIL))

как я понял, "FILTER_VALIDATE_EMAIL" это проверка на "шаблон" почты на уровне php... может можно так-же как-то проверять на A-Za-z ?    

 

У доп. полей, если их создавать, ведь есть возможность указывать проверку regex'ом типо [A-Za-z], по сути получается, что такую же проверку можно дописать как-то и для имени, фамилии, а для адреса добавить еще цифры, точки, запятые и пробелы ?

Змінено користувачем ADZ
Надіслати
Поділитися на інших сайтах


  • 1 month later...

Подскажите, правильна ли запись будет тогда для  /catalog/controller/account/register.php ? (примерно 220 строки)

вместо

	private function validate() {
		if ((utf8_strlen(trim($this->request->post['firstname'])) < 1) || (utf8_strlen(trim($this->request->post['firstname'])) > 32)) {
			$this->error['firstname'] = $this->language->get('error_firstname');
		}

надо дописать проверку для имен типа "Ivan Petrovich" вида

preg_match('/[^A-Z a-z\s]+/msi',$this->request->post['firstname']

и получится что-то вроде

	private function validate() {
		if ((utf8_strlen(trim($this->request->post['firstname'])) < 1) || (utf8_strlen(trim($this->request->post['firstname'])) > 32) || !preg_match('/[^A-Z a-z\s]+/msi',$this->request->post['firstname']) ) {
			$this->error['firstname'] = $this->language->get('error_firstname');
		}

Надо ли preg_match брать в скобки ?? и мне же для праверки на ошибку нужно, значит вроде как !preg_match... как обратное

спасибо

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.