Как установить ReCaptcha v2 и обновить
Как обновить recaptcha v2 на новую recaptcha v3
Каждый владелец веб-ресурса сталкивается с такой проблемой как спам и бороться с этим можно с помощью CAPTCHA, который используется для того, чтобы отличить машину от человека методом определения цифр на картинке, отдельных фрагментов на изображении и другое. С это задачей легкостью справится даже ребенок, она достаточно сложная для машины. В сегодняшней статье мы рассмотрим, как установить и настроить ReCaptcha v2.0, более новую и улучшенную версию, с усовершенствованным дизайном и интерфейсом. После обновления программы, значительно упростился процесс серверной проверки.
Для начала необходимо получить ключи от Google, получить его можно перейдя по ссылке. Обязательным условием для поучения ключа является наличие учетной записи в Google. После перехода по ссылке необходимо добавить ваш сайт либо несколько сайтов в предложенную форму.
В предложенную форму вводим наименование сайта, владельца (почтовый ящик) и домен. Без использования «http://» и «www» и нажимаем кнопку «Регистрация», после чего получаем 2 ключа, один из них секретный, далее приступаем к установке CAPTCHA на сайте.
Для того чтобы установить CAPTCHA необходимо ввести CAPTCHA в предложенную форму следуя достаточно понятной инструкции Google. В коде HTML необходимо использовать первый ключ, API можете подключить в любом месте, можно сразу после формы, не обязательно должно быть в HEAD
<form method="post"> <input type="text" name="email"> <input type="text" name="url"> <div class="g-recaptcha" data-sitekey="ВАШ_КЛЮЧ"></div> <input type="submint" name="sub_but"> </form> <script src='https://www.google.com/recaptcha/api.js'></script>
Для интегрирования с сервером необходимо добавить код проверки ReCaptcha. Код на php прописываем, там, где будет проходить проверка данных у сайта.
//Получаем пост от recaptcha $recaptcha = $_POST['g-recaptcha-response']; //Сразу проверяем, что он не пустой if(!empty($recaptcha)) { //Получаем HTTP от recaptcha $recaptcha = $_REQUEST['g-recaptcha-response']; //Сюда пишем СЕКРЕТНЫЙ КЛЮЧ, который нам присвоил гугл $secret = 'ВАШ_СЕКРЕТНЫЙ_КЛЮЧ'; //Формируем utl адрес для запроса на сервер гугла $url = "https://www.google.com/recaptcha/api/siteverify?secret=".$secret ."&response=".$recaptcha."&remoteip=".$_SERVER['REMOTE_ADDR']; //Инициализация и настройка запроса $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 10); curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.16) Gecko/20110319 Firefox/3.6.16"); //Выполняем запрос и получается ответ от сервера гугл $curlData = curl_exec($curl); curl_close($curl); //Ответ приходит в виде json строки, декодируем ее $curlData = json_decode($curlData, true); //Смотрим на результат if($curlData['success']) { //Сюда попадем если капча пройдена, дальше выполняем обычные //действия(добавляем коммент или отправляем письмо) с формой } else { //Капча не пройдена, сообщаем пользователю, все закрываем стираем и так далее } } else { //Капча не введена, сообщаем пользователю, все закрываем стираем и так далее }
После совершенных манипуляций количество спама должно значительно сократится. Данная версия CAPTCHA дает проверочное задание только тогда, если не может точно определить человек это или бот. Задание откроется в виде небольшого виджета и не потребует перезагрузки страницы.
Оставить комментарий
(*) полня обязательные к заполнению