AjaxForm и reCaptcha V3
Доброе время суток. Сталкивался ли кто-нибудь с использованием reCaptcha V3 через плагин?
Каким образом происходит проверка на робота? Обычных пользователей не пропускает, а проверку не дает.
Сама каптча на сайте подключена, но нет возможности ее проверить. Смотрел в документации, написано «Параметр rcv3Action предназначен для изменения идентификатора action.», но так и не понял для чего он и что выполняет. Если зайти через приватное окно, то никаких проверок не происходит и форма надежно отправляет, а другие пользователи отправляют форму и у них не выскакивает никакой проверки а сразу выдается сообщение «Вы не прошли проверку reCaptcha.» Смотрел видео на ютубе, парень делал не через плагин и говорит что существуют 3 спосоа проверки и по умолчанию стоит на кнопке, при нажатии на нее если есть подозрения то всплывающим окном выходит проверка на картинках — но ничего. PS на странице несколько форм.
Каким образом происходит проверка на робота? Обычных пользователей не пропускает, а проверку не дает.
Сама каптча на сайте подключена, но нет возможности ее проверить. Смотрел в документации, написано «Параметр rcv3Action предназначен для изменения идентификатора action.», но так и не понял для чего он и что выполняет. Если зайти через приватное окно, то никаких проверок не происходит и форма надежно отправляет, а другие пользователи отправляют форму и у них не выскакивает никакой проверки а сразу выдается сообщение «Вы не прошли проверку reCaptcha.» Смотрел видео на ютубе, парень делал не через плагин и говорит что существуют 3 спосоа проверки и по умолчанию стоит на кнопке, при нажатии на нее если есть подозрения то всплывающим окном выходит проверка на картинках — но ничего. PS на странице несколько форм.
Комментарии: 13
Делал по инструкции, не на одном сайте. Проблем не было. Как проверить не знаю, но спама нет. Она как то в фоне проверяет…
Смотрел в документации, написано «Параметр rcv3Action предназначен для изменения идентификатора action.», но так и не понял для чего он и что выполняет.Если форм на странице несколько (а их несколько как написано), то в этом параметре должны быть разные значения для каждой из форм, например:
'rcv3Action' => 'contactform' - в первой
'rcv3Action' => 'feedbackform' - во второй, и т.д.
Если настроено всё по инструкции, как написали выше, то проблем быть не должно. И покажите вызовы сниппетов и чанки форм на всякий случай. {if $type?}
{switch $type}
{case 'blue'}
{var $conf = [
'subject' => 'Заявка '~$_modx->config.site_name,
'tpl' => 'tplBlueForm',
'action' => 'blue_feedback'
]}
{case 'green'}
{var $conf = [
'subject' => 'Вопрос '~$_modx->config.site_name,
'tpl' => 'tplGreenForm',
'action' => 'green_feedback'
]}
{case 'popup'}
{var $conf = [
'subject' => 'Связаться с нами '~$_modx->config.site_name,
'tpl' => 'tplPopupForm',
'validate' => 'name:required,phone:required,email:email,form:required,g-recaptcha-response:required',
'action' => 'fb-popup'
]}
{/switch}
{if !$conf.validate?}
{var $conf.validate = 'name:required,phone:required,comment:required,email:email,form:required,g-recaptcha-response:required'}
{/if}
{$_modx->runSnippet('!AjaxForm', [
'snippet' => 'FormIt',
'validationErrorMessage' => 'В форме содержатся ошибки!',
'successMessage' => 'Спасибо за обращение, наш менеджер свяжется с Вами в ближайшее время',
'hooks' => 'rcv3,email',
'emailSubject' => $conf.subject,
'emailFromName' => $_modx->config.site_name,
'emailFrom' => $_modx->config.org_noreply,
'emailTo' => $_modx->config.org_email,
'emailTpl' => 'tplFormitEmail',
'form' => $conf.tpl,
'validate' => $conf.validate,
'rcv3Action' => $conf.action,
'titleForm' => $title
])}
{/if}
Вроде как всё должно работать. Единственное что можно попробовать убрать из validate:
g-recaptcha-response:required
Здесь это не нужно {var $title = $titleForm ? $titleForm : 'Оформите заявку на Бесплатные тестовые образцы продукции'}
<form class="reionbm">
<div>
<h3 class="iijgpnomn489b">{$title}</h3>
<div class="yeuongmnm">
<div>
<div>
<input type="text" name="name" placeholder="Имя*" required>
</div>
<div class="otstp"></div>
<div>
<input type="text" name="phone" placeholder="Телефон*" required>
</div>
<div class="otstp"></div>
<div>
<input type="text" name="email" placeholder="E-mail*">
</div>
<input type="hidden" name="form" value="{$title}" />
</div>
<div>
<textarea name="comment" required placeholder="Напишите, какие образцы и в каком количестве Вы хотели бы получить, а так же Ваши контактные данные для организации доставки образцов."></textarea>
</div>
</div>
<div class="regu3hb">
<button type="submit" class="ryuihgmv" onclick="checkForm(this);">Отправить заявку</button>
</div>
<div class="kgire9j0m">
<div class="squaredThree">
<input type="checkbox" class="gnrji08bxz" id="squaredThree5hfh5" name="check" onclick="checkCheck($(this));">
<label for="squaredThree5hfh5"></label>
</div>
<a href="/politika-konfidenczialnosti.html" target="_blank">Политика конфиденциальности</a>
</div>
{'!rcv3_html' | snippet : [
'action' => $rcv3Action,
'error' => $_modx->getPlaceholder('fi.error.g-recaptcha-response'),
]}
<div class="message"></div>
</div>
</form>
Это первая tpl
Просто не совсем понятно, может что-то я не понимаю. Ты обычный пользователь заходишь и хочешь отправить форму, твой score не набрал например нужный 0.7 — и все, ты бот. И это никак не оспорить. Хоть всплывающий тест бы был.
Не очень в тему, но добавлю от себя про reCaptcha 3, недавно просто обнаружил.
Заметил, что формы, защищенные рекапчей 3, а именно если внутри идет вызов сниппета
На сайте 5 форм с защитой — для мобильного показывает 30 баллов.
Оставляю только одну с защитой, с остальных просто убираю вызов сниппета в форме — 60 баллов.
Отключаю совсем защиты во всех формах — 98 баллов.
Заметил, что формы, защищенные рекапчей 3, а именно если внутри идет вызов сниппета
{'!rcv3_html' | snippet : [
'action' => $rcv3Action,
'error' => $_modx->getPlaceholder('fi.error.g-recaptcha-response'),
]}
которые обязательно нужно вызывать по инструкции, приводит просто к катастрофической просадке, если проверять сайт в google page speed.На сайте 5 форм с защитой — для мобильного показывает 30 баллов.
Оставляю только одну с защитой, с остальных просто убираю вызов сниппета в форме — 60 баллов.
Отключаю совсем защиты во всех формах — 98 баллов.
Поддерживаю. Может автор плагина @Игорь Терентьев пояснит зачем так?
5 форм — 5 раз вызывается скрипты каптчи. Может это можно как-то исправить?
Мне тоже потом прилетает от SEOшников. :)
5 форм — 5 раз вызывается скрипты каптчи. Может это можно как-то исправить?
Мне тоже потом прилетает от SEOшников. :)
Всем привет, пока что нет времени заняться компонентом.
Примерно представляю, как решить проблему с тормозами при использовании нескольких форм на странице — выставлять плэйсхолдер в сниппете и проверять на пустоту.
Примерно представляю, как решить проблему с тормозами при использовании нескольких форм на странице — выставлять плэйсхолдер в сниппете и проверять на пустоту.
А можно просто принять мой PR
Спасибо! Потестирую и выкачу новую версию.
Попробуйте заменить содержимое сниппета rcv3_html на это и сравните разницу.
Спасибо, опробую обязательно
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.