Opencart 2.0.3.1 - 联系表格未经验证

时间:2015-11-12 23:13:07

标签: contact-form opencart2.x

我使用的是默认的Opencart 2.0.3.1。除联系表格外,一切都很好。出于某种原因,它不会验证表单,并且在提交后不会出现任何错误。有任何想法吗?您可以在此处查看:https://sgroiinnovations.com/index.php?route=information/contact

我无法理解。相同类型的验证用于输入评论,并且它可以正常工作。在联系表单中,单击提交时,它会提交表单而不输入任何信息。在提交页面之前或之后没有提供错误。

在contact.php中,毫无疑问它正在调用下面的验证函数,但由于某种原因,提交按钮似乎只是在没有此过程的情况下提交页面(表单)。

我猜我有一些简单的东西,但是我无法抓住它。任何帮助,将不胜感激。 THX

protected function validate() {
    if ((utf8_strlen($this->request->post['name']) < 3) || (utf8_strlen($this->request->post['name']) > 32)) {
        $this->error['name'] = $this->language->get('error_name');
    }

    if (!preg_match('/^[^\@]+@.*.[a-z]{2,15}$/i', $this->request->post['email'])) {
        $this->error['email'] = $this->language->get('error_email');
    }

    if ((utf8_strlen($this->request->post['enquiry']) < 10) || (utf8_strlen($this->request->post['enquiry']) > 3000)) {
        $this->error['enquiry'] = $this->language->get('error_enquiry');
    }

    if ($this->config->get('config_google_captcha_status')) {
        $recaptcha = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($this->config->get('config_google_captcha_secret')) . '&response=' . $this->request->post['g-recaptcha-response'] . '&remoteip=' . $this->request->server['REMOTE_ADDR']);

        $recaptcha = json_decode($recaptcha, true);

        if (!$recaptcha['success']) {
            $this->error['captcha'] = $this->language->get('error_captcha');
        }
    }

    return !$this->error;
}

1 个答案:

答案 0 :(得分:0)

问题已解决。问题是我使用.htaccess将http转发到https。由于安全性不安全,这会破坏联系表单。不知道为什么,但我删除了重定向并且它有效。