Перейти к содержанию
Форум поддержки пользователей VamShop

Добавляем невидимую каптчу от гугл (google recaptcha v3) на страницу обратной связи!


support

Рекомендуемые сообщения

Если Вы столкнулись с прблемой спама, который приходит у Вас со страницы обратной связи, можно попробовать добавить невидимую каптчу (google recaptcha v3) от гугл.

1. На сайте https://google.com/recaptcha получаете ключи для сайта.

site key и secret key.

2. В файле /shop-content.php меняйте:

	if (isset ($_GET['action']) && ($_GET['action'] == 'send') && $spam_flag == false) {

на:

    // Build POST request:
    $recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
    $recaptcha_secret = 'ЗДЕСЬ-УКАЖИТЕ-ВАШ-СЕКРЕТНЫЙ-КЛЮЧ';
    $recaptcha_response = $_POST['recaptcha_response'];

    // Make and decode POST request:
    $recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $recaptcha_response);
    $recaptcha = json_decode($recaptcha);

	if (isset ($_GET['action']) && ($_GET['action'] == 'send') && $spam_flag == false && $recaptcha->score >= 0.5) {

В шаблоне страницы обратной связи /templates/ваш-шаблон/module/contact_us.html после:

{config_load file="$language/lang_$language.conf" section="contact_us"}

добавьте:

<script src="https://www.google.com/recaptcha/api.js?render=УКАЖИТЕ-ЗДЕСЬ-СВОЙ-SITE-KEY"></script>
    <script>
        grecaptcha.ready(function () {
            grecaptcha.execute('УКАЖИТЕ-ЗДЕСЬ-СВОЙ-SITE-KEY', { action: 'contact' }).then(function (token) {
                var recaptchaResponse = document.getElementById('recaptchaResponse');
                recaptchaResponse.value = token;
            });
        });
    </script>

и внизу, меняйте:

{$FORM_END}

на:

<input type="hidden" name="recaptcha_response" id="recaptchaResponse">
{$FORM_END}

 

Всё, теперь, по идее, форма обратной связи защищена каптчей от гугла.

 

Ссылка на сообщение
Поделиться на другие сайты
  • support changed the title to Добавляем невидимую каптчу от гугл (google recaptcha v3) на страницу обратной связи!
×
×
  • Создать...