Спам Formit(AjaxForm) + reCaptcha V3
Чанк
[[!AjaxForm?
&form=`tpl.AjaxForm-popup`
&snippet=`FormIt`
&hooks=`rcv3,email`
&emailSubject=`Сообщение с сайта`
&emailTo=`[[++to_email]]`
&emailFrom=`[[++from_email]]`
&emailTpl=`contaktTpl-popup`
&validate=`name:required,tel:required,g-recaptcha-response:required`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Спасибо, ваша заявка принята.`
]]
Форма<form action="#" method="post" class="ajax_form af_example" id="pop-up">
<div class="form-group">
<label class="control-label" for="af_name">Ваше имя*:</label>
<div class="controls">
<input type="text" id="af_name" name="name" placeholder="" class="form-control"/>
<span class="error_name">[[+fi.error.name]]</span>
</div>
</div>
<div class="form-group">
<label class="control-label" for="tel">Мобильный телефон*:</label>
<div class="controls">
<input type="tel" id="af_tel" name="tel" placeholder="" class="form-control"/>
<span class="error_tel">[[+fi.error.tel]]</span>
</div>
</div>
<div class="form-group">
<p class="warning-buy"><small><small>Нажимая на кнопку "Отправить", вы даете согласие на обработку <a target="_blank" href="doc/doc/POLITIKA_KONF_GRANIIT.pdf">персональных данных</a></small></small></p>
</div>
<input type="hidden" name="ValToSend" value="">
[[!rcv3_html? &action=`[[+rcv3Action:default=``]]` &error=`[[+fi.error.g-recaptcha-response]]`]]
<div class="form-group">
<div class="controls">
<button type="submit" class="btn btn-default" style="float: none;">[[%af_submit]]</button>
</div>
</div>
[[+fi.success:is=`1`:then=`
<div class="alert alert-success">[[+fi.successMessage]]</div>
`]]
[[+fi.validation_error:is=`1`:then=`
<div class="alert alert-danger">[[+fi.validation_error_message]]</div>
`]]
</form>
И переадресация, при успешной отправке:<script>
$(document).on('af_complete', function(event, response) {
var form = response.form;
if (form.attr('id') == 'pop-up' && response.success) {
window.location.href = "[[~20]]"
}
});
</script>
Читал, что reCaptcha V3 глюченная, и лучше использовать V2. Так ли это? Может кто-то уже сталкивался с такой проблемой?Комментарии: 4
Если форм на странице несколько, нужно указать параметр:
Вот это в валидации не нужно
Проверить работает ли рекапча вообще, нет ли ошибок в консоли. Так же можно использовать метод из комментария — RecaptchaV3 пропускает спам, весьма успешно работает.
&rcv3Action=`contactform` //разный для каждой из форм
Вот это в валидации не нужно
g-recaptcha-response:required
Проверить работает ли рекапча вообще, нет ли ошибок в консоли. Так же можно использовать метод из комментария — RecaptchaV3 пропускает спам, весьма успешно работает.
а в самой форме [[!rcv3_html? &action=`[[+rcv3Action:default=``]]` &error=`[[+fi.error.g-recaptcha-response]]`]] так и оставить?
Да, модификатор default ставит пустой action, если не заполнен параметр, потому лучше указывать название формы.
спасибо за помощь, буду пробовать
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.