МЕНЮ
Смотреть демо
0

Ваш заказ

Как установить recaptcha на сайт

reCAPTCHA — это система, позволяющая установить защиту на сайты от ботов, а также помогающая Google в оцифровке старой литературы. Эта статья поможет вам понять что такое рекапча(капча) и расскажет как установить recaptcha на сайт.

Что такое капча reCAPTCHA

reCAPTCHA — это продолжение проекта CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) — полностью автоматизированный публичный тест Тьюринга для различения компьютеров и людей) — компьютерный тест, используемый для того, чтобы определить, кем является пользователь системы: человеком или компьютером. Основная идея теста: предложить такую задачу, которая с лёгкостью решается человеком, но крайне сложна и трудоёмка для компьютера.  

После обновления в 2015 пользоваться ReCAPTCHA (No CAPTCHA ReCAPTCHA) стало гораздо проще. Теперь достаточно поставить галочку «Я не робот» / «I'm not a robot»:
поставить галочку в reCAPTCHA, чтобы доказать, что вы не робот


Кстати, сейчас Google тестирует новую версию, именуемую reCaptcha Invisible.
новая recaptcha invisible


Суть обновления в том, что теперь нет необходимости что-либо делать, чтобы подтвердить, что вы человек, если у «капчи» нет сомнений в вашей «человечности».

recaptcha сама проверяет что  вы не робот

Проект находится на стадии бета-версии, но им уже можно пользоваться.



Как установить reCaptcha на сайт

Для установки reCAPTCHA на ваш сайт воспользуйтесь документацией от разработчиков Google. Там вы также найдёте дополнительные данные о персональной настройки reCAPTCHA. Для пользователей CMS Moguta ниже приведена подробная инструкция.


Как установить reCAPTCHA к шаблону Moguta

Мы покажем установку на примере формы обратной связи, однако данный метод будет работать и для других форм.

Шаг 1
  1. Заходим в административную панель;
  2. Настройки - Опции;
  3. Находим строчку «Использовать капчу»;
  4. Ставим галочку;

Шаг 2

Для начала вам понадобится API key, так что заходим сюда (Необходимо зарегистрироваться в Google) Вам будет предложено зарегистрировать свой сайт и домен. Они зарегистрируют указанный вами домен, а также все поддомены. Например, если вы укажете адрес domen.ru, они также зарегистрируют poddomen.domen.ru
регистрируем домены для установки recaptcha на сайт

Шаг 3

После этого вы получите ключ сайта и секретный ключ:
получаем ключи для установки recaptcha

Шаг4

Под ключами вы увидите несколько фрагментов для включения reCAPTCHA на вашем сайте.
JavaScript:
установка recaptcha на сайт

  1. Заходим на хостинг;
  2. Переходим по адресу mg-templates/mg-default/;
  3. Находим файл template.php;
  4. в этом файле вставляем строчку в тег head:
  5. вставляем фрагменты recaptcha в код
  6. Переходим по адресу mg-templates/mg-default/views;
  7. Находим файл feedback.php;
  8. В этот файле находим форму;
  9. В форме удаляем стоковую капчу и заменяем ее на;
    <div class="g-recaptcha" data-sitekey="key"></div>
  10. Обратите внимание что в атрибут data-sitekey надо занести значение вашего ключа;
  11. Вставляем блок reCAPTCHA в саму форму
  12. Далее идём по адресу mg-core/lib/;
  13. Копируем файл recaptchalib.php в mg-core/lib/;
  14. Находим блок в mg-core/models/feedback.php:
  15.     if(MG::getSetting('useCaptcha')=="true"){
          if (strtolower($arrayData['capcha']) != strtolower($_SESSION['capcha'])) {
            $error .= "<span class='error-captcha-text'>Текст с картинки введен неверно!</span>";
          }    
        }
  16. Вместо конструкции if вставляем:
  17. // ваш секретный ключ
    $secret = "ЗДЕСЬ ДОЛЖЕН БЫТЬ ВАШ СЕКРЕТНЫЙ КЛЮЧ";
     
    // пустой ответ
    $response = null;
    include('mg-core/lib/recaptchalib.php');
    // проверка секретного ключа
    $reCaptcha = new ReCaptcha($secret);
    
    if ($_POST["g-recaptcha-response"]) {
    $response = $reCaptcha->verifyResponse(
            $_SERVER["REMOTE_ADDR"],
            $_POST["g-recaptcha-response"]
        );
    }
    
    
    if ($response == null || !$response->success) {
      $error .= "Recapctha не пройдена";
      $data['error'] = $error;
    }
  18. Чтобы получилось:
  19.     if(MG::getSetting('useCaptcha')=="true"){
         // ваш секретный ключ
    $secret = "ЗДЕСЬ ДОЛЖЕН БЫТЬ ВАШ СЕКРЕТНЫЙ КЛЮЧ";
     
    // пустой ответ
    $response = null;
    include('mg-core/lib/recaptchalib.php');
    // проверка секретного ключа
    $reCaptcha = new ReCaptcha($secret);
    
    if ($_POST["g-recaptcha-response"]) {
    $response = $reCaptcha->verifyResponse(
            $_SERVER["REMOTE_ADDR"],
            $_POST["g-recaptcha-response"]
        );
    }
    
    
    if ($response == null || !$response->success) {
      $error .= "Recapctha не пройдена";
      $data['error'] = $error;
    }
    }
  20. Если вы всё сделали правильно, то у вас на сайте появится окно reCAPTCHA.

Заключение

Теперь вы знаете как установить reCAPTCHA на сайт, а также на CMS Moguta. Если у вас появятся какие-либо вопросы пишите в комментариях, до новых встреч!

Комментарии (32)

Имя:
E-mail:
Прикрепить изображения

Получать уведомления о новых комментариях:
  • Виктор 13.06.2019 09:42
    Добрый день. Установил все по инструкции. При отправке сообщения открывает пустую страницу при этом сообщение не отправляет. Версия 6,9,10 . Поможете? И не совсем понятно, один ключ сайта в какие файлы его ставить? Куда тогда ставить Секретный ключ?
    • Шевченко 13.06.2019 10:37
      Виктор, добрый день! Куда вставлять ключ написано в последнем пункте $secret = "ЗДЕСЬ ДОЛЖЕН БЫТЬ ВАШ СЕКРЕТНЫЙ КЛЮЧ"; А вообще, статья довольно старая — рекаптча давно включена в стандартный настройки. Проверьте, есть ли у вас такие опции в админке. http://joxi.ru/v29D7yBTZX6Kam
      • Виктор 13.06.2019 10:58
        Спасибо, попробую. В моей версии Могуты еще нет такого.
      • Виктор 13.06.2019 11:51
        Не получилось. После отправки пустая страница и сообщение не отправляется.
    • Шевченко 14.06.2019 10:49
      Дайте ссылку на страницу
      • Виктор 21.06.2019 11:51
        http://vodo-moto.ru/feedback Прошу прощения что с задержкой.
    • Шевченко 24.06.2019 12:35
      А если убрать рекапчу, то форма отправляется нормально?
      • Виктор 24.06.2019 15:59
        Да, отправляется нормально и после отправки высвечивается сообщение что отправлено.
  • Алексей 10.03.2018 03:50
    на сайте рекаптчи - такое сообщение - Мы обнаружили, что ваш сайт не проверяет решения reCAPTCHA. Это необходимо для правильного использования reCAPTCHA на вашем сайте.
  • Алексей 09.03.2018 09:27
    версия системы 6.9.22 - проделал все этапы установки - проверяю на feedback - форма рекаптчи появилась - при нажатии "я не робот" - ставиться галочка - а вот после нажатия отправить сообщение - на хроме обновляется с сообщение что каптча не пройдена, а на firefox - пустая страница (чистая). Все делал по схеме, за исключением того, что менял не дефолтный шаблон, "бургунди"
    • Виктор 13.06.2019 14:19
      Алексей, как-то решили?
  • Александр 24.02.2018 19:13
    На странице входа, даже если не нажимаешь на рекапчу все равно входит. как исправить. Делал все по списку.
  • Константин 17.10.2017 13:20
    Установил но у меня вышла капча с картинками, а я хочу просто галочку ставить почему так ?
    • Андрей 25.10.2017 11:07
      Если пользователь вызывает подозрения, тогда выводятся дополнительно изображения. На это Вы не повлияете.
  • Константин 28.09.2017 22:51
    Если это сделать то на странице "Оформление заказа" эта reCaptcha тоже появится ? Или же останется старая с вводом символов с картинки ?
    • Александр 17.10.2017 10:51
      Также, только не для feedback.php, а для order.php
  • Евгений 04.08.2017 09:28
    Добрый день!
    При вводе не верного пароля для входа включается капча с вводом текста на изображении. Как можно заменить эту капчу на reCAPTCHA. В шаблоне enter.php вывод капчи реализован с помощью

    // <?php echo!empty($data['checkCapcha'])?$data['checkCapcha']:'' ?>.

    Если его полностью заменить на div гугл капчи, то она будет показана постоянно, а не только при не верном вводе.
    • Иван 04.08.2017 10:49
      Добрый, замените эту строчку на
      <?php if (MG::getSetting('useCaptcha') == "true"):?>
      <div class="g-recaptcha" data-sitekey="ВАШ КЛЮЧ"></div>
      <?php endif; ?>
      • Евгений 04.08.2017 11:29
        Иван, не совсем то. Нужно чтобы капча показывалась только тогда, когда пароль или логин был введен не верно. Так же как это работает в стандартных настройках, только вместо ввода текста с изображения была рекапча
    • Иван 04.08.2017 15:36
      дайте ссылку на ваш сайт
  • Юрий 27.06.2017 22:48
    Добрый вечер!
    Как сделать проверку на корректность ввода в файле registration.php?
    Регистрация проходит даже если не поставил галку ReCapcha.
    • Александр 04.07.2017 12:14
      Добрый, изменили инструкцию, начиная с пункта 14.
  • Леон 20.06.2017 15:11
    Текст с картинки введен неверно! пишет все равно, на странице регистрации
    • Александр 20.06.2017 15:21
      Леон, вы пункты 17-18 для файла registration.php делали?
      • Леон 28.06.2017 17:37
        Да, делал. в Том то и дело.
    • Александр 04.07.2017 12:15
      Мы изменили инструкцию, начиная с 14 пункта. теперь всё должно работать
  • Leon 20.06.2017 05:02
    А в шаблоне porto, нет файла feedback.php. Вставил код в файл registration. Капча появилась, но при попытки зарегистрироваться, пишет ошибку, мол вы не верно ввели текст с картинки.
    • Александр 20.06.2017 12:33
      Это была проверка старой капчи. Добавили пункты 17 и 18 - теперь всё должно работать.
  • Сергей 16.06.2017 23:21
    Ребят, в файле registration.php - требуется удалить стоковую капчу.
    А то на странице регистрации - старая. Правильно я понял?
  • Сергей 16.06.2017 17:05
    Здравствуйте. 8-9 шаг, есть возможность в виде скриншотов сделать?
    • Александр 16.06.2017 17:27
      Конечно, выложили)
  • Александр 16.06.2017 16:26
    После 15 шага, ошибка в 48 строке
    • Александр 16.06.2017 16:44
      а какой у вас шаблон и что за ошибка?