Opencart验证方式

3
我希望你能在Opencart代码中添加PHP电话号码验证,以下是示例代码:

我想在Opencart代码中添加PHP电话号码验证,以下是示例代码:

    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.';
        }*/
3个回答

8

@Tayyab Gulsher Vohra....

我也遇到了这个问题,我自己总结并解决了它。请按照以下步骤操作。

Opencart是一个MVC架构的平台,因此您需要了解控制器、模型和视图。在这里,控制器是在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');
                }

那么您应该在语言文件中初始化电话号码的值。

1
你的代码是正确的,你可以定义这个支持的格式,例如 (91)-112-122-1252。 - Ravi Patel

2

你有两个选择,验证或过滤。 由于电话号码的长度和字符不同,我建议你只进行过滤。

FILTER_SANITIZE_NUMBER_INT

除数字、加号和减号外,删除所有字符。

更多信息请参见: 过滤器

示例

<?php echo filter_var("Home: +1 (123) 456-7890 @ John", FILTER_SANITIZE_NUMBER_INT); ?>

1

消毒剂功能并不适用于验证电话号码,我可能会使用正则表达式,保留 ( ) + - : e 和数字,因为这样可以允许大多数国际号码和分机号的变化。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接