Новая reCAPTCHA от Google 3 версии: возможности и установка на сайт

Виды капчи

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

Графический вид

kapcha-vvod.jpg

Логический вид

kapcha-kartinki.jpg

Поведенческий вид

Как правило, это обычная галочка, которую очень легко поставить. Так же встречаются более интересные варианты, в виде поворота картинки в нужное положение.

Звуковой вид

Данный вид это по сути все выше перечисленные виды капч, но если нажать на капче иконку “наушники или колонку звука” робот проговорит капчу которую нужно ввести. Это полезно для тех, кто плохо видит или не видит вообще.

Как установить капчу от Google на сайт

Весь код будет выглядеть вот так:

 /*КЛЮЧИ*/ define('SITE_KEY', '6LfWrOEUAAAAAOGb1yTSWxvIqfKApjK7EUFTJgQv'); define('SECRET_KEY', '6LfWrOEUAAAAAI90P-wWghJxH2Tp0ci3L8Hcur3K');  /*ОБРАБОТКА ЗАПРОСА*/ if($_POST){     /*СОЗДАЕМ ФУНКЦИЮ КОТОРАЯ ДЕЛАЕТ ЗАПРОС НА GOOGLE СЕРВИС*/     function getCaptcha($SecretKey) {         $Response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".SECRET_KEY."&response={$SecretKey}");         $Return = json_decode($Response);         return $Return;     }          /*ПРОИЗВОДИМ ЗАПРОС НА GOOGLE СЕРВИС И ЗАПИСЫВАЕМ ОТВЕТ*/     $Return = getCaptcha($_POST['g-recaptcha-response']);     /*ВЫВОДИМ НА ЭКРАН ПОЛУЧЕННЫЙ ОТВЕТ*/     var_dump($Return);          /*ЕСЛИ ЗАПРОС УДАЧНО ОТПРАВЛЕН И ЗНАЧЕНИЕ score БОЛЬШЕ 0,5 ВЫПОЛНЯЕМ КОД*/     if($Return->success == true && $Return->score > 0.5){         echo "Succes!";     }     else {         echo "You are Robot";     } }  <title>Document</title>

Один из кусочка кода, HTML форма с двумя полями в одно из которых будет использовано для капчи. Этому полю будет задан индификатор – “g-recaptcha-response“. Информация из формы будет отправляться через метод POST, обработка будет проводиться в этом же файле, исходя из чего в атрибуте action нужно поставить значение /.

Для установки капчи на сайт от Гугл нужно иметь или зарегистрировать почту gmail. Сама установка капчи на сайт не содержит сложностей и займет максимум 15 минут. Для того чтобы это сделать, необходимо зайти на официальный сайт с продуктом reCAPTCHA от Google. На сайте нужно войти в “Консоль администратора“:

konsol-administratora-1024x375.jpg

Далее нужно заполнить поля:

  • одна созданная капча только для одно конкретного сайта, поэтому нужно написать название такое, чтобы потом, если понадобиться можно было легко ее найти;
  • выбрать тип reCAPTCHA;
  • добавить домен. В случаи использования локального сервера, то нужно прописывать localhost или название папки, если это OpenServer;
  • принять условия Google;
  • и нажать кнопку “Отправить
kapcha-gugl-na-site.jpg

Далее нужно “Скопировать ключ сайта” и “Скопировать секретный ключ“. Скопировав вставьте по очереди в код, который ниже. Для просмотра статистики нужно нажать на кнопку “Перейти в Google Аналитику“:

Скопировав первый и второй ключи, нужно вставить вот так в этот код:

Этот код для упрощения работы с кодами. Заменяя в коде ключи на свои, вставляйте так, чтобы кавычки ( ‘ ) в начале и в конце не удалить! Копируем код с уже замененными на свои ключи и открываем код сайта на котором нужно установить капчу и вставляем этот код в код сайта в первую строку:

/КЛЮЧИ/  define('SITE_KEY', '6LfWrOEUAAAAAOGb1yTSWxvIqfKApjK7EUFTJgQv');  define('SECRET_KEY', '6LfWrOEUAAAAAI90P-wWghJxH2Tp0ci3L8Hcur3K');  

Этот JavaScript код, который подключает reCAPTCHA и в нем заменены некоторые значения. Так как ключи от Google были прописаны в самом начале, то в коде нужно прописывать значение из константы где находятся ключи. Вот эти значения и замены и добавлен console.log(token), чтобы увидеть токен в консоли, который будет передаваться в качестве значения для поля – g-recaptcha-response:

В самом начале в две созданные константы были внесены ключи и одна из констант была прописана в коде JavaScript.

Далее сделали, что проверка будет отправляться через POST и что данные из формы будут записаны. Теперь остался по сути последний шаг PHP код, в котором нужно прописать действие, которое будет давать запрос в Google и от которого будут приходить данные о этом запросе. Это действие нужно прописать в переменную. Опираясь на показатели Гугл, то данные которые приходят score ниже 0.5 – это значит бот, а если выше, то человек:

/ОБРАБОТКА ЗАПРОСА/  if($_POST){      /СОЗДАЕМ ФУНКЦИЮ КОТОРАЯ ДЕЛАЕТ ЗАПРОС НА GOOGLE СЕРВИС/      function getCaptcha($SecretKey) {          $Response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".SECRET_KEY."&response={$SecretKey}");          $Return = json_decode($Response);          return $Return;      }   /ПРОИЗВОДИМ ЗАПРОС НА GOOGLE СЕРВИС И ЗАПИСЫВАЕМ ОТВЕТ/      $Return = getCaptcha($_POST['g-recaptcha-response']);      /ВЫВОДИМ НА ЭКРАН ПОЛУЧЕННЫЙ ОТВЕТ/      var_dump($Return);     /ЕСЛИ ЗАПРОС УДАЧНО ОТПРАВЛЕН И ЗНАЧЕНИЕ score БОЛЬШЕ 0,5 ВЫПОЛНЯЕМ КОД/      if($Return->success == true && $Return->score > 0.5){          echo "Succes!";      }      else {          echo "You are Robot";      }  } 

Теперь можно “Перейти Google Аналитику” и смотреть статистику:

На этом интеграция капчи Google на сайт завершена.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий