我使用的是默认的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;
}
答案 0 :(得分:0)
问题已解决。问题是我使用.htaccess将http转发到https。由于安全性不安全,这会破坏联系表单。不知道为什么,但我删除了重定向并且它有效。