Проверка

Я хочу добавить проверку номера телефона 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 и числа, поскольку это позволяет использовать большинство вариантов международных номеров и расширений.