Использование Google reCAPTCHA на статическом сайте | ВесьТоп создание и продвижение сайтов

Поддержка сайта

Высокие позиции в поисковой системе, на прямую зависят от развития вашего сайта.

Продвижение сайтов

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

Создание сайтов

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

Использование Google reCAPTCHA на статическом сайте

Добавить reCAPTCHA на статический сайт

Использование современных и многофункциональных сайтов, построенных на динамических платформах CMS, таких как WordPress, сегодня кажется безальтернативным. Однако у разработки статических сайтов на основе популярных фреймворков, таких как Bootstrap, есть свои поклонники.

Например, чтобы добавить reCAPTCHA в WordPress, вообще говоря, нам нужно выбрать, установить и активировать плагин reCAPTCHA, ввести пару ключей в настройках плагина и указать, где загружать reCAPTCHA — на страницах, в сообщениях и / или комментариях.

Находясь в Bootstrap (и на всех сайтах HTML, CSS и JavaScript), мы вручную создаем код на каждой странице, включая страницы форм, которые мы можем легко защитить с помощью специальной версии reCAPTCHA, следуя информации в статье.

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

В этой статье мы покажем, как добавить reCAPTCHA в форму, как отправлять информацию в API reCAPTCHA, как проверять с помощью PHP и как формы работают в браузере, и все это самым простым и легким способом реализации.

Инструкция по добавлению reCAPTCHA на сайт

Это сайт с инструкциями Google (https://developers.google.com/reCAPTCHA/intro) о том, как добавить reCAPTCHA на наш сайт. Информация предназначена для людей, знакомых с HTML-формами, JavaScript, обработкой данных на сервере. Чтобы установить reCAPTCHA, вам нужно будет отредактировать код из примеров.

Использование Google reCAPTCHA на статическом сайте

Чтобы любая версия reCAPTCHA работала корректно, необходимо выполнить следующие шаги:

  • Интеграция с Frontend — добавление соответствующей reCAPTCHA (щелкнув в меню ссылки reCAPTCHA v3, Checkbox или Invisible);
  • API Request — способы отправки данных на сервер API — разные для каждой версии;
  • API Response — получение ответа в виде объекта JSON — описание данных, которые мы получаем в результате проверки;
  • Проверка ответа пользователя — показывает, как подтвердить ответ пользователя на контрольный тест reCAPTCHA.

Информация представлена ​​в основном в описательной форме или в таблицах параметров без достаточно конкретных примеров кода, что затрудняет выполнение рекомендаций для людей, не знакомых с терминологией JavaScript в деталях.

Добавить флажок reCAPTCHA v2

Виджет reCAPTCHA v2 (который содержит флажок флажка, откуда взято его имя) может быть загружен автоматически или явно, если у нас есть более одной формы на странице.

Флажок интеграции reCAPTCHA v2 во фронтенд

Самый простой метод автоматического добавления виджета reCAPTCHA в форму — это загрузка JavaScript API и добавление тега g-recaptcha.

В lt; headgt; В разделе страницы помещаем ссылку на JavaScript API:

lt; скрипт src ="https://www.google.com/recaptcha/api.js"gt; lt; / scriptgt;

Тег g-recaptcha — это элемент DIV, который содержит класс g-recaptcha и ключ сайта в атрибуте data-sitekey:

lt; div класс ="g-recaptcha" data-sitekey ="lt ;? php echo SITE_KEY; ? gt;"gt; lt; / divgt;

  • class ="g-recaptcha" — отправляет в качестве параметра POST g-recaptcha-response ответ пользователя после того, как он решит тест reCAPTCHA;
  • data-sitekey ="lt ;? php echo SITE_KEY; ? gt; — мы определяем ключ на сайте как константу SITE_KEY в PHP-коде и здесь мы используем константу, чтобы не вводить ключ в нескольких местах кода, что может привести к ошибке;

define (‘SITE_KEY’, ‘_reCAPTCHA_site_key_’); определить (‘SECRET_KEY’, ‘_reCAPTCHA_secret_key_’);

Проверка ответа пользователя

Следуя инструкциям, мы создали запрос API POST на https://www.google.com/recaptcha/api/siteverify с двумя параметрами, используя функции curl:

$ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify"); curl_setopt ($ ch, CURLOPT_POST, 1); curl_setopt ($ ch, CURLOPT_POSTFIELDS, http_build_query (array (‘secret’ = gt; SECRET_KEY, ‘response’ = gt; $ respKey))); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, истина); $ response = curl_exec ($ ch); curl_close ($ ch);

  • secret — содержит секретный ключ от регистрации;
  • response — содержит информацию от reCAPTCHA в параметре g-recaptcha-response;

Следующая функция декодирует содержимое полученной строки JSON:

$ apiResponse = json_decode ($ response, истина);

Через код print_r ($ response); мы показываем содержание ответа синим шрифтом.

В зависимости от состояния параметра успеха мы генерируем сообщение об успешном или неудачном результате действия пользователя.

Как работает флажок reCAPTCHA v2?

Следующие изображения показывают нам, как работают описанные команды.

Начальная загрузка формы с виджетом флажка reCAPTCHA v2:

Использование Google reCAPTCHA на статическом сайте

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

Использование Google reCAPTCHA на статическом сайте

reCAPTCHA принимает наш ответ как правильный и устанавливает флажок:

Использование Google reCAPTCHA на статическом сайте

Нажмите кнопку «Отправить» и загрузите соответствующее сообщение из сценария PHP ($ scssmsg = "Ваше имя: ‘$ uname’.";) — в примере показывает, какое имя мы ввели. Любой другой сценарий, введенный в этот блок, будет выполняться таким же образом — мы можем отправить информацию из полей формы по электронной почте, сохранить их в файле или базе данных …

Ответ, декодированный JSON, отображается синим цветом:

  • успех — статус результата теста (true | false);
  • Challenge_ts — время выполнения запроса reCAPTCHA в формате ISO;
  • hostname — имя хоста сайта, на котором был выполнен запрос reCAPTCHA;

Использование Google reCAPTCHA на статическом сайте

Когда мы вводим имя в поле, но нажимаем кнопку Отправить, пытаясь пропустить reCAPTCHA, ответ от скрипта API является ошибкой и сообщает нам причину ошибки — missing-input-response (отсутствует параметр ответа):

{ "успех": ложный, "коды ошибок": [ "недостающий-ввод-ответ" ]}

Использование Google reCAPTCHA на статическом сайте

Возможные статусы ошибок описаны в таблице:

Ошибка Описание
пропущенный-ввод-секрет Ключ reCAPTCHA не введен.
неверный-ввод-секрет Ключ недействителен или неправильно отформатирован.
недостающий-ввод-ответ Отсутствует параметр ответа.
неверный-ввод-ответ Параметр ответа недействителен или имеет неверный формат.
плохой запрос Неверный запрос.
тайм-аут или дубликат Ответ недействителен, потому что он старый или уже использовался ранее.

reCAPTCHA — это интеллектуальный алгоритм, который обучается отличать легитимные запросы от вредоносных, поэтому в большинстве тестов задача reCAPTCHA не загружалась, и виджет напрямую отмечал поле Я не робот. Соотношение легитимных / подозрительных запросов записывается в виде графика в соответствующем профиле reCAPTCHA:

Использование Google reCAPTCHA на статическом сайте

Добавить невидимый reCAPTCHA v2

В reCAPTCHA v2 invisible невидимый виджет прикрепляется к форме путем добавления нескольких атрибутов к кнопке HTML:

lt; класс кнопки ="g-recaptcha" data-sitekey ="lt ;? php echo SITE_KEY; ? gt;" data-callback ="onSubmit"gt; Submitlt; / buttongt;

  • class ="g-recaptcha" — содержит информацию из reCAPTCHA в маркере (токене) g-recaptcha-response;
  • data-sitekey — PHP-константа SITE_KEY содержит ключ сайта и определена в PHP-коде;
  • data-callback — содержит имя функции обратного вызова и выполняется, когда пользователь отправляет успешный ответ;

Если вам интересно, какая информация и в каком формате содержится в теге g-recaptcha-response, мы можем увидеть это с помощью команды print_r ($ _ POST); :

Массив ([uname] = GT; название [г-Recaptcha-ответ] = GT; 03AOLTBLRj6CN302DObDBG9sKQgY4ucuWnlU2XrHc76vSVdnlDAFt6Hvy-AegVciIEy7WgtI-wo6lCVRpHaljjwmFYSXTMTPsjeqmhxZiWEHuQ1JdQgqB3vy4JFlrNfnnwhcnHWSZBky5YqG6tkXEiB80k7WiIiOE8n1de3xzFY2JjS1Ygnm0yRIQoCWXLQdjpCzEyfA-UlU24Q7cwuo_L77FqvJRKr7-FH9Gw1D6gnRH7EQVgrdxms1WEX8EoSEU9uxWWVxOyzZ1ciAUMOZore4wdXHcAKib-kNZn6pOVIubQnhWa_qVL_ldbSVf8JnYcsck626lyCua_9E8i5oS20AR-JwcDqAj2tStsoRFGysPPRjethq9mazIJxeCRCh3z0iLL8g6OJhYQlzweItD2mYmjInbJyR2juDruy6IOjbVonwUoDJwU0tUhGs6AKC0XdPkQZKd6ZN1-PkzukdQdVyAfWURX4dlp3iWOb30WkcmdteMzWBai8PQ)

Мы добавляем к lt; headgt; раздел HTML-кода необходимый ресурс JavaScript:

lt; скрипт src ="https://www.google.com/recaptcha/api.js" async defergt; lt; / scriptgt; lt; scriptgt; функция onSubmit (t) {document.getElementById"cform") .Отправить ()} lt; / scriptgt;

Поскольку разница между версиями reCAPTCHA v2 заключается только в интерфейсе Frontend, который загружается в браузере, нет абсолютно никакой разницы в коде проверки со стороны сервера API.

Как работает невидимый reCaptcha v2?

Сначала загружаем форму в браузере — отсутствует виджет, знакомый по версии флажка:

Использование Google reCAPTCHA на статическом сайте

Только скользящий баннер в правом нижнем углу указывает, что reCAPTCHA следит за тем, что происходит на странице:

Использование Google reCAPTCHA на статическом сайте

Мы можем изменить расположение баннера, добавив к кнопке атрибут data-badge со значением bottomright (внизу справа — по умолчанию), bottomleft (внизу слева) и inline (над кнопкой). Мы также добавляем встроенный CSS с помощью стиля, чтобы расстояние между баннером и кнопкой было:

lt; класс кнопки ="g-recaptcha" data-sitekey ="lt ;? php echo SITE_KEY; ? gt;" значок данных ="в очереди" data-callback ="onSubmit" style ="margin-top: 16 пикселей"gt; Submitlt; / buttongt;

Использование Google reCAPTCHA на статическом сайте

Баннер статичен, только ссылки «Конфиденциальность» и «Условия» ведут пользователей на соответствующие страницы с их правами, так как reCAPTCHA проверяет информацию о пользователе.

Если мы нажмем кнопку напрямую, мы получим предупреждение Введите имя, но эта функция не является частью reCAPTCHA и запрограммирована дополнительно:

Использование Google reCAPTCHA на статическом сайте

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

Использование Google reCAPTCHA на статическом сайте

Получаем знакомый ответ из чекбокса reCAPTCHA:

Использование Google reCAPTCHA на статическом сайте

Система ошибок работает таким же образом — в этом случае ошибка связана с дублированием, поскольку мы обновили страницу и на практике попытались повторно отправить ту же информацию:

Использование Google reCAPTCHA на статическом сайте

В нашем невидимом профиле reCAPTCHA v2 у нас есть доступ к статистике по соотношению Подозрительных запросов к общему количеству запросов (Всего сессий):

Использование Google reCAPTCHA на статическом сайте

Добавить reCAPTCHA v3 (версия 3)

reCAPTCHA v3 работает в фоновом режиме, анализируя трафик на сайт и предупреждая о подозрительных запросах, не прерывая пользовательских сеансов с помощью знакомых знакомых по reCAPTCHA v2 задач.

На основе статистики трафика, предоставленной reCAPTCHA v3, администраторы сайта имеют возможность принять соответствующий ответ на подозрительные запросы.

Интеграция с фронтендом reCAPTCHA v3

Сначала мы загружаем JavaScript API с ключом сайта, который копируем из панели настроек в lt; headgt; Раздел HTML:

lt; скрипт src ="https://www.google.com/recaptcha/api.js?render=lt;?php echo SITE_KEY; ? gt;"gt; lt; / scriptgt;

Затем мы вызываем функцию grecaptcha.execute, прикрепляя ее к определенному действию или давая указание запускаться при загрузке страницы (onload):

lt; scriptgt; grecaptcha.ready (функция () {grecaptcha.execute ("lt ;? php echo SITE_KEY; ? gt;", {действие: "домашняя страница" }). then (function (e) {document.getElementById ("g-recaptcha-response") .value = e})}); lt; / scriptgt;

Константа PHP SITE_KEY содержит ключ сайта и определяется в начале кода PHP для проверки запросов.

Согласно инструкциям Google, два сценария должны быть размещены на странице HTML в таком порядке — сначала api.js, затем сценарий, вызывающий функцию grecaptcha, чтобы избежать конфликта между сценариями.

Чтобы отправить информацию формы на сервер API для обработки и возврата результата, мы добавляем в HTML-код скрытое поле, содержащее необходимый тег (g-recaptcha-response):

lt; тип ввода ="скрытый" id ="g-recaptcha-response" имя ="g-recaptcha-response"gt;

Мы можем увидеть информацию в теге двумя способами:

Помимо знакомой команды print_r ($ _ POST);, информацию в маркере также можно увидеть с помощью команды console.log (token); :

lt; тип ввода ="скрытый" id ="g-recaptcha-response" имя ="g-recaptcha-response" значение ="03AOLTBLQyXbVFa2zITKBKukJOCJb__DovyPo9oD6tbN8MpOT22L5JzWi_6Pm_2rSb0RYamWpKCgkV_hnyriOMTcjKE0i6_QodoP1jN7b93gr8hXVn9LKJ5S7xy2fmQietHumayNxuIERUEGoCA7mMQXv4NfB1NP3O0s9dpR4fI5htr5G8th9YrguQIy49I_LFqTJoRLd1W_AbuDrkfJ93eZ1CdGBMNr1Iso_rI8nItZUTYe1R8GcmH6UIi10nye8vwEIDhAQjkfbO2pNlZem74UU_i86OzyqLuq5lo4xbEKT9D7Kk0BLsP3UgFuRbpOdvo_48ChMRcW1r16xMIX0y4f0L7-lqdmxjOG5LjOWw49CUFxzjc6KzYuWoV4hMVbe39gCbP1opWrbYPXnyaY2ih2LlIB3U4JRHJawy5MtZ01j4Uhk9hK1KK5SyutunYIn74diNoQViBuMKbiZhpqZcgQqZN_0WYUTGEA0UbAuzrMfNJknLsuLNniI"gt;

Как и в случае с проверкой reCAPTCHA v2, мы следуем шагам в инструкции Google. Опять же, мы отправляем на сервер секретный ключ и содержимое тега g-recaptcha-response:

$ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify"); curl_setopt ($ ch, CURLOPT_POST, 1); curl_setopt ($ ch, CURLOPT_POSTFIELDS, http_build_query (array (‘secret’ = gt; SECRET_KEY, ‘response’ = gt; $ respKey))); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, истина); $ response = curl_exec ($ ch); curl_close ($ ch); $ apiResponse = json_decode ($ response, истина);

Хотя мы используем одни и те же функции для отправки той же информации на сервер API, полученный результат содержит специфичные для reCAPTCHA v3 данные — счет и действие.

Как работает reCAPTCHA v3?

В браузере загружаются только элементы формы, reCAPTCHA v3 невидима и нет видимых признаков физического присутствия, за исключением наличия скользящего баннера, защищенного reCAPTCHA в правом нижнем углу экрана. Заполнение текстового поля Имя является обязательным, так как опция активируется опционально и не является следствием действия reCAPTCHA.

Использование Google reCAPTCHA на статическом сайте

При заполнении поля и нажатии кнопки Отправить активируется весь механизм reCAPTCHA и возвращается результат:

Использование Google reCAPTCHA на статическом сайте

  • успех — указывает, содержит ли токен reCAPTCHA действительный запрос;
  • оценка — результат анализа запроса (0,0 — 1,0);
  • действие — действие, к которому прикреплен запрос;
  • Challenge_ts — время выполнения reCAPTCHA;
  • hostname — имя хоста сайта, с которого был получен запрос reCAPTCHA;

Результатом параметра score является преимущество reCAPTCHA v3 — на основе этого результата выбирается значение, которое отделяет легитимные запросы от подозрительных. Google рекомендовал это значение равным 0,5, в нашем примере запрос с оценкой lt; = 4 приводит к дополнительным действиям, а запросы с результатом оценки gt; 4 проверены:

Использование Google reCAPTCHA на статическом сайте

Эти дополнительные действия вводятся в блок переменной $ lowscore и должны быть установлены программистом сайта.

if ($ apiResponse [‘успех’] == true) И ($ apiResponse [‘оценка’] gt; 0.4)) {$ scssmsg = "Ваше имя: ‘$ uname’."; } if ($ apiResponse [‘success’] == true) И ($ apiResponse [‘score’] lt; = 0,4)) {$ lowscore = "Извините, мистер. бот (: "; }

Это очень важно понимать — reCAPTCHA v3 предоставляет нам оценку риска в рейтинге, но не предпринимает никаких действий в отношении самого запроса. Ожидается, что мы запрограммируем и осуществим соответствующие действия.

reCAPTCHA v3 также включает знакомую систему кодов ошибок:

Использование Google reCAPTCHA на статическом сайте

Статистика действий ReCAPTCHA v3 отображается в профиле и предоставляет доступ к следующей информации:

Использование Google reCAPTCHA на статическом сайте

Количество запросов — показывает количество запросов, которые reCAPTCHA получила от сайта для указанного действия.

Распределение баллов — показывает распределение результатов для указанного действия. Диапазон результатов от 0,0 до 1,0, где 0,0 указывает на подозрительный трафик, а 1,0 указывает на законный трафик.

10 лучших действий — показывает 10 лучших действий для сайта. Чтобы получить более подробную информацию о трафике, нам нужно указать действие на каждой странице, где выполняется проверка reCAPTCHA.

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

Скопируйте исходный код из примеров

Ниже вы можете скопировать свернутый код из примеров. Чтобы восстановить код в удобочитаемой форме, мы рекомендуем использовать онлайн-сервис, например http://beautifytools.com/. Каждый файл содержит код PHP и HTML, части которого необходимо приукрасить (это буквальное название службы) отдельно друг от друга с помощью разделов HTML Beautifier и PHP Beautifier.

Флажок reCAPTCHA v2

lt ;? php define (‘SITE_KEY’, ‘_reCAPTCHA_SITE_KEY_’); define (‘SECRET_KEY’, ‘_reCAPTCHA_SECRET_KEY_’); $ uname = $ _POST [‘uname’]; $ respKey = $ _POST [‘g-recaptcha-response’]; если ($ _POST [‘отправить’]) {$ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify"); curl_setopt ($ ch, CURLOPT_POST, 1); curl_setopt ($ ch, CURLOPT_POSTFIELDS, http_build_query (array (‘secret’ = gt; SECRET_KEY, ‘response’ = gt; $ respKey))); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, истина); $ response = curl_exec ($ ch); curl_close ($ ch); $ apiResponse = json_decode ($ response, истина); ($ apiResponse [‘success’] == true)? ($ scssmsg = "Ваше имя: ‘$ uname’."): ($ errmsg = "Проверка не удалась."); }? gt; lt ;! DOCTYPE htmlgt; lt; html lang ="en"gt; lt; headgt; lt; titlegt; CHECKBOXlt; / titlegt; lt; скрипт src ="https://www.google.com/recaptcha/api.js"gt; lt; / scriptgt; lt; / headgt; lt; bodygt; lt; form action ="" метод ="после"gt; lt; input name ="безымянный" заполнитель ="имя" requiredgt; lt; brgt; lt; brgt; lt; div class ="g-recaptcha" data-sitekey ="lt ;? php echo SITE_KEY; ? gt;"gt; lt; / divgt; lt; brgt; lt; тип ввода ="Отправить" имя ="Отправить" значение ="послать"gt; lt; / formgt; lt; p style ="цвет: # A50000"gt; lt ;? php echo $ errmsg; ? gt; lt; / pgt; lt; p style ="цвет: # 265D0C"gt; lt ;? php echo $ scssmsg; ? gt; lt; / pgt; lt; pgt; lt ;? php echo ‘lt; pre style ="цвет: # 0055A0; размер шрифта: 14 пикселей"gt; ‘. print_r ($ response, true).’ lt; / pregt; ‘; ? gt; lt; / pgt; lt; / bodygt; lt; / htmlgt;

reCAPTCHA v2 Невидимый

lt ;? php define (‘SITE_KEY’, ‘_reCAPTCHA_SITE_KEY_’); define (‘SECRET_KEY’, ‘_reCAPTCHA_SECRET_KEY_’); $ respKey = $ _POST [‘g-recaptcha-response’]; $ uname = $ _POST [‘uname’]; (! isset ($ respKey)) и (пусто ($ uname)))? ($ fillerr = »): »; (isset ($ respKey)) и (пусто ($ uname)))? ($ fillerr = ‘Введите имя.’): »; если (isset ($ respKey)) и (! empty ($ uname))) {$ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify"); curl_setopt ($ ch, CURLOPT_POST, 1); curl_setopt ($ ch, CURLOPT_POSTFIELDS, http_build_query (array (‘secret’ = gt; SECRET_KEY, ‘response’ = gt; $ respKey))); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, истина); $ response = curl_exec ($ ch); curl_close ($ ch); $ apiResponse = json_decode ($ response, истина); ($ apiResponse [‘success’] == true)? ($ scssmsg = "Ваше имя: ‘$ uname’."): ($ errmsg = "Проверка не удалась."); }? gt; lt ;! DOCTYPE htmlgt; lt; html lang ="en"gt; lt; headgt; lt; meta charset ="UTF-8"gt; lt; titlegt; INVISIBLElt; / titlegt; lt; скрипт src ="https://www.google.com/recaptcha/api.js" async defergt; lt; / scriptgt; lt; scriptgt; function onSubmit (t) {document.getElementById ("cform") .submit ()} lt; / scriptgt; lt; / headgt; lt; bodygt; lt; form id ="cform" действие ="" метод ="после"gt; lt; input name ="безымянный" заполнитель ="имя"gt; lt; brgt; lt; brgt; lt; класс кнопки ="g-recaptcha" data-sitekey ="lt ;? php echo SITE_KEY; ? gt;" data-callback ="onSubmit"gt; Submitlt; / buttongt; lt; / formgt; lt; divgt; lt; p style ="цвет: # A50000"gt; lt ;? php echo $ errmsg; ? gt; lt ;? php echo $ fillerr; ? gt; lt; / pgt; lt; p style ="цвет: # 265D0C"gt; lt ;? php echo $ scssmsg; ? gt; lt; / pgt; lt; pgt; lt ;? php echo ‘lt; pre style ="цвет: # 0055A0; размер шрифта: 14 пикселей"gt; ‘. print_r ($ response, true).’ lt; / pregt; ‘; ? gt; lt; / pgt; lt; / divgt; lt; / bodygt; lt; / htmlgt;

reCAPTCHA v3

lt ;? php define (‘SITE_KEY’, ‘6LfYML0UAAAAAAYMQNjBq6JWj8OIl5Id_0PJJFV2’); определить (‘SECRET_KEY’, ‘6LfYML0UAAAAAIEu6kXzUpEzXH6_JB9rF5hqAoeX’); $ uname = $ _POST [‘uname’]; $ respKey = $ _POST [‘g-recaptcha-response’]; если ($ _POST [‘отправить’]) {$ ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, "https://www.google.com/recaptcha/api/siteverify"); curl_setopt ($ ch, CURLOPT_POST, 1); curl_setopt ($ ch, CURLOPT_POSTFIELDS, http_build_query (array (‘secret’ = gt; SECRET_KEY, ‘response’ = gt; $ respKey))); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, истина); $ response = curl_exec ($ ch); curl_close ($ ch); $ apiResponse = json_decode ($ response, истина); if ($ apiResponse [‘success’] == false) {$ errmsg = "Проверка не удалась."; } если ($ apiResponse [‘success’] == true) и ($ apiResponse [‘score’] gt; 0.4)) {$ scssmsg = "Ваше имя: ‘$ uname’."; } если ($ apiResponse [‘success’] == true) и ($ apiResponse [‘score’] lt; = 0,4)) {$ lowscore = "Извините, мистер. бот (: "; }}? gt; lt ;! DOCTYPE htmlgt; lt; html lang ="en"gt; lt; headgt; lt; titlegt; reCAPTCHAlt; / titlegt; lt; скрипт src ="https://www.google.com/recaptcha/api.js?render=lt;?php echo SITE_KEY; ? gt;"gt; lt; / scriptgt; lt; / headgt; lt; bodygt; lt; идентификатор формы ="cform" действие ="" метод ="после"gt; lt; input name ="безымянный" заполнитель ="имя" requiredgt; lt; brgt; lt; brgt; lt; тип ввода ="скрытый" id ="g-recaptcha-response" имя ="g-recaptcha-response"gt; lt; тип ввода ="Отправить" имя ="Отправить" значение ="послать"gt; lt; / formgt; lt; divgt; lt; p style ="цвет: # A50000"gt; lt ;? php echo $ errmsg; ? gt; lt; / pgt; lt; p style ="цвет: # A50000"gt; lt ;? php echo $ lowscore; ? gt; lt; / pgt; lt; p style ="цвет: # 265D0C"gt; lt ;? php echo $ scssmsg; ? gt; lt; / pgt; lt; pgt; lt ;? php echo ‘lt; pre style ="цвет: # 0055A0; размер шрифта: 14 пикселей"gt; ‘. print_r ($ response, true).’ lt; / pregt; ‘; ? gt; lt; / pgt; lt; / divgt; lt; scriptgt; grecaptcha.ready (function () {grecaptcha.execute ("lt ;? php echo SITE_KEY; ? gt;", {действие:"домашняя страница"}). then (функция) {document.getElementById ("g-recaptcha-response") .value = e})}); lt; / scriptgt; lt; / bodygt; lt; / htmlgt;

библиотека PHP reCAPTCHA

Это библиотека PHP от Google, которая обрабатывает ответы сервера от reCAPTCHA. Клиент PHP поддерживает как reCAPTCHA v2, так и reCAPTCHA v3.

https://github.com/google/recaptcha

`

Читайте так же:
Not found

Нам доверяют

Интернет магазин