В этой небольшой статье мы рассмотрим простой пример по замене reCAPTCHA м на SmartCaptcha в контактных формах на сайте (для обратной связи с клиентами) с использованием HTML и JavaScript.

После введения новых законов на территории РФ перед многими владельцами сайтов и веб-сервисов встал вопрос о замене капчи с Гугл-сервисов на отечественные аналоги. Проще всего переезд можно осуществить на сервисы от компании Яндекс.

Дочитайте статью до конца и только после полного ознакомления приступайте к работе!

1. Удаление Google reCAPTCHA с сайта

Первым делом нам нужно удалить с сайта подключаемое API от Google, выглядит она примерно следующим образом:

<script src="https://www.google.com/recaptcha/api.js"></script>

Обычно код капчи располагается в html страницах вверху сайта между тегами <head> и </head>, но скрипты могут располагаться и в другом месте, ищите строку с содержимым: <script src=»https://www.google.com/recaptcha/api.js

После того, как мы нашли и удалили API гугл капчи, переходим к следующему шагу, а блоки, отвечающие за Гугл-капчу в самих контактных формах мы пока не трогаем.

2. Регистрируем аккаунт в Yandex Cloud и создаем нашу первую Yandex SmartCaptcha

Полная документация, где все расписано по шагам находится здесь. В данном разделе мы очень коротко пробежимся по основным моментам.

  1. Заходим в консоль Yandex Cloud
  2. Выбираем Yandex SmartCaptcha или просто SmartCaptcha
  3. Далее нажимаем «Создать капчу»
  4. Заполняем все необходимые поля как на скриншоте ниже
  • Вводим название капчи английскими буквами
  • Вводим адрес сайта, где мы будем использовать данную капчу
  • Стили капчи можно настроить под себя в пункте «Настройки внешнего вида» или выбрать один из стандартных вариантов. Внесенные изменения во внешний вид будут отображены в правой части экрана.
  • Листаем страницу настроек ниже:
  • Выбираем нужный тип задания по распознаванию капчи
  • Я бы посоветовал отжать галочку в пункте «Обучение ML-моделей», чтобы не передавать данные куда вам не нужно (но тут на ваше усмотрение)
  • Финальный шаг создания — нажимаем кнопку «Создать капчу«

Теперь нам нужен ключ от созданной нами капчи

В списке капч выбираем нашу, нажимаем «Обзор» — ищем строку Ключ клиента, копируем ключ.

3. Интегрируем капчу Яндекса в контактную форму на сайте

Смотрим на нашу контактную форму, пример ниже:

<form method="post" action="#">
	<input type="email">
	<div class="g-recaptcha" data-sitekey="КЛЮЧ_САЙТА" ></div>
	<button type="submit">Отправить</button>
</form>

В строке под номером 3 удаляем код Google reCaptcha:

<div class="g-recaptcha" data-sitekey="КЛЮЧ_САЙТА" ></div>

Вставляем код Яндекс капчи, в атрибут data-sitekey вставляем ключ клиента капчи:

<div class="smart-captcha" data-sitekey="сюда вставляем ключ клиента" data-callback="enableSubmitButtonZvon"></div>

В итоге получается примерно такой код:

<form method="post" action="#">
	<input name="phone" placeholder="Введите ваш телефон">
        <div class="smart-captcha" data-sitekey="сюда вставляем ключ клиента"></div>	
        <button type="submit">Отправить</button>
</form>

Проверка заполнения капчи 

Чтобы заблокировать кнопку отправки формы перед проверкой Yandex SmartCaptcha — можно написать простую callback-функцию, в капчу добавив атрибут data-callback c уникальным значением, а в кнопку button добавим уникальный id и атрибут disabled:

<form method="post" action="#">
	<input name="phone" placeholder="Введите ваш телефон">
        <div class="smart-captcha" data-sitekey="сюда вставляем ключ клиента" 
          data-callback="enableSubmitButton"></div>	
        <button type="submit" id="submitButton" disabled>Отправить</button>
</form>

А ниже, под код формы вставляем скрипт для проверки на нажатие капчи. Если пользователь или бот капчу не прошел, то кнопка отправки формы останется заблокированной.

С использованием чистого JavaScript

<script>
      function enableSubmitButton() {
         document.getElementById('submitButton').disabled = false;
      };
</script>

С использованием библиотеки JQuery

<script>
      function enableSubmitButton() {
         $('#submitButton').removeAttr('disabled');
      };
</script>

Визуально

Примечание

Данный коллбэк работал как в Гугл капче, так будет работать и с Яндекс капчей. Именно подобные решения упрощают переезд в разы, так как нам не придется переписывать старые скрипты и коллбэки (если они были написаны ранее).

Остальные кейсы по замене капчи работают по аналогии, все сделано максимально удобно и похоже на зарубежные аналоги, так что заменить капчу не составит огромного труда но, перед проведением любых работ рекомендую ознакомиться с официальной документацией от Яндекса и сделать бекап (резервную копию вашего сайта).

Комментарии

Оставьте Ваше сообщение

Подписаться
Уведомить о
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии

Смотрите далее

Ознакомьтесь с другими работами

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x