Добавление капчи на страницу contact-us
1: Заходим на сайт reCaptcha и генерируем ключ для вашего домена
2: Добавляем <script src=https://www.google.com/recaptcha/api.js'></script> в header.tpl перед тегом </head>
или {if $contacts}<script src='https://www.google.com/recaptcha/api.js'></script>{/if} для отображения только на странице контактов
3: Добавляем <div class="g-recaptcha" data-sitekey="[public Google key]"></div> в contact-form.tpl перед тегом </form>
4: в фаиле /controllers/front/ContactController.php после линии : $this->errors[] = Tools::displayError('Bad file extension');
Добавляем:
elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response'))))
$this->errors[] = Tools::displayError('Captcha not verified');
"еще вариант: скачиваем модуль на сайте http://webnewbie.ru и выполняем пункт 4"
UPG!! 25.02.2018
Как оказалось установка капчи не особо помогает от ботов т.к. отправляется методом POST.
Пока 100% решения не нашли, рано или поздно спамеры все равно находят как обойти
Временное решение - это замена ссылки формы обратной связи в настройках "SEO и URLs"
и добавление тега
<META HTTP-EQUIV="REFRESH" CONTENT="N;URL=адрес">
после {if isset($confirmation)} в фаиле contact-form.tpl
где N - время в секундах (целое число)
URL - адрес документа - вышей формы обратной связи
например <META HTTP-EQUIV="REFRESH" CONTENT="0;URL=/contact">
где /contact - это страница формы обратной связи
Очень интересно
Здравствуйте. А Вы не могли бы мне установить на сайт. Очень устала чистить почту. Да и сама не очень разбираюсь в этом. Спасибо.
Напишите нам на почту shop-kpk@ya.ru c пометкой для Петра, постараемся помочь
Добрый день Вам! спамят сайт http://my-antique.ru/ru/contact-us поставил капчу, но она не работает. пожалуйста подскажите в чем дело.
Так не работает } else if (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))){ $this->errors[] = Tools::displayError('Captcha not verified'); } _______________________________________________________________________ Так работает } elseif (!($gcaptcha = (int)(Tools::getValue('g-recaptcha-response')))){ $this->errors[] = Tools::displayError('Captcha not verified'); и то что в взял у гугла с ним работает а с вашей почему-то нет
поправил, должно работать
Спасибо за статью, реально помогла!
Огромное спасибо!
Так что Петь, решение нашел ?
месяц уже полет нормальный. HTTP-EQUIV="REFRESH" помог
Спасибо за подсказку будем пробовать )
На соседней ветке нашел решение: Мне помог модуль на гитхабе. Идея в том, что прежде чем отправить сообщение, нужно авторизоваться. Не надо закрывать форму, боты работают с контроллером, а он отправляет всех на регистрацию. Как-то так. https://github.com/Seleda/ps__stopspamcontactform Перед установкой прочтите в архиве файл readme Версии престы 1.6 и 1.7