Я хочу добавить проверку номера телефона php в примере кода opencart, приведенном ниже
if(!filter_var($customer_email, FILTER_VALIDATE_EMAIL)) { $errors[$pos++] = 'Email is not valid.'; } if($customer_mobile=='') { $errors[$pos++] = 'Please enter your Mobile.'; } /*elseif (strlen($customer_mobile) < 11 || !is_numeric($this->request->post['cell_number'])){ $errors[$pos++] = 'Mobile number should be 7 digits.'; }*/
@Tayyab Gulsher Vohra ….
Я также сталкиваюсь с этой проблемой. Я пришел к заключению и сделал это. следуйте инструкциям., opencart – это структурная платформа MVC , поэтому вам нужно знать о контроллере, модели и представлении. Здесь Controller – это первый номер телефона инициализации в функции index()
if (isset($this->request->post['telephone'])) { $this->data['telephone'] = $this->request->post['telephone']; } else { $this->data['telephone'] = $this->customer->getTelephone(); }
далее, номер телефона должен быть действительным, используя этот метод.
function validate() if( !preg_match("/^([1]-)?[0-9]{3}-[0-9]{3}-[0-9]{4}$/i", $this->request->post['telephone']) ) { $this->error['telephone'] = $this->language->get('error_telephone'); }
то вы должны быть инициализированы значение номера телефона в файле языка.
Ну, у вас есть 2 варианта, проверка или фильтрация. Поскольку номера телефонов различаются по длине и символам, я бы предположил, что вы просто фильтруете
FILTER_SANITIZE_NUMBER_INT
Удалите все символы, кроме цифр, плюс и минус.
для получения дополнительной информации: Фильтры
ПРИМЕР :
<?php echo filter_var("Home: +1 (123) 456-7890 @ John", FILTER_SANITIZE_NUMBER_INT); ?>
Функции sanitizer на самом деле не готовы к проверке номеров телефонов, и я бы, вероятно, использовал regex leave () + -: e и числа, поскольку это позволяет использовать большинство вариантов международных номеров и расширений.