WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Руководство по интеграции hCaptcha с PHP

599

Недавно один из наших читателей спросил об интеграции hCapctha на веб-сайт. HCaptcha хорошая альтернатива службе Google ReCaptcha. В этой статье мы изучаем, как можно добавить hCapctha с PHP на свой веб-сайт.

Всегда рекомендуется использовать капчу в формах сайта. Спам действительно плохой, и он просто расстраивает вас. Вы никогда не захотите тратить свое драгоценное время на удаление поддельных / ненужных комментариев.

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

Сказав это, давайте посмотрим на интеграцию hCaptcha с PHP. Требуется проверить ответ hCaptcha на стороне сервера. Мы напишем код на стороне сервера, используя как cURL, так и библиотеку Guzzle. Пользователь может использовать любой из них.

Начиная

Вам необходимо сначала создать учетную запись в сервисе hCaptcha. В отличие от Google reCAPTCHA, вы можете использовать ключи hCaptcha прямо на своем веб-сайте. Вам не нужно регистрировать у них свой домен.

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

Затем щелкните значок настроек в таблице и возьмите ключ вашего сайта.

Руководство по интеграции hCaptcha с PHP

Чтобы получить секретный ключ, перейдите на вкладку «Настройки».

Руководство по интеграции hCaptcha с PHP

Когда вы будете готовы с ключами, необходимо выполнить 2 шага. Сначала добавьте hCaptcha в свою форму. А затем проверьте ответ captcha на стороне сервера.

Создадим простую форму и добавим в нее hCaptcha следующим образом.

<form action="" method="POST">     <input type="text" name="email" placeholder="Email" />     <input type="password" name="password" placeholder="Password" />     <div class="h-captcha" data-sitekey="YOUR_SITE_KEY"></div>     <br />     <input type="submit" name="submit" value="Submit" /> </form> <script src="https://hcaptcha.com/1/api.js" async defer></script>

Здесь мы включили библиотеку JavaScript hCaptcha и добавили класс h-captchaв контейнер div. Вам также необходимо передать ключ вашего сайта в атрибут data data-sitekey.

Перезагрузите страницу, и теперь вы должны увидеть, что в форму добавлен флажок hCaptcha. Давайте теперь посмотрим, как проверить ответ captcha.

Проверить ответ hCaptcha с помощью cURL

Когда пользователь отправляет форму вместе с captcha, вам необходимо проверить ответ captcha на стороне сервера. Для проверки вы должны отправить POST-запросы на конечную точку hCaptcha https://hcaptcha.com/siteverify. В запросе POST параметрами являются секретный ключ и h-captcha-response (который поступает из отправленной формы).

В PHP мы можем использовать как cURL, так и Guzzle для взаимодействия с внешним сервером. При отправке запросов через cURL убедитесь, что на вашем сервере включено расширение cURL.

В случае cURL ваш код будет следующим, чтобы проверить ответ hCaptcha.

<?php if (isset($_POST['submit'])) {     $data = array(         'secret' => "YOUR_SECRET_KEY",         'response' => $_POST['h-captcha-response']     );     $ch = curl_init();     curl_setopt($ch, CURLOPT_URL, "https://hcaptcha.com/siteverify");     curl_setopt($ch, CURLOPT_POST, true);     curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     $response = curl_exec($ch);     $responseData = json_decode($response);     if($responseData->success) {         // proceed the form     } else {         echo 'Robot verification failed, please try again.';     } } ?>

Замените заполнитель фактическим значением. В приведенном выше коде мы проверяем, successистинна ли переменная в ответе. Если это правда, то можно приступать к заполнению формы.

Проверить ответ hCaptcha с помощью Guzzle

Guzzle — альтернатива cURL. Он предоставляет более чистый код по сравнению с cURL. Если вы используете Guzzle, вам не нужно иметь расширение cURL на вашем сервере.

Для начала вам нужно сначала установить библиотеку Guzzle в свой проект. Выполните приведенную ниже команду для установки библиотеки.

composer require guzzlehttp/guzzle

После этого напишите приведенный ниже код, который будет проверять ответ hCAPTCHA с помощью библиотеки Guzzle.

<?php require_once 'vendor/autoload.php';   use GuzzleHttpClient;   if (isset($_POST['submit'])) {       $client = new Client([         // Base URI is used with relative requests         'base_uri' => 'https://hcaptcha.com',     ]);            $response = $client->request('POST', '/siteverify', [        'form_params' => [             'secret' => "YOUR_SECRET_KEY",             'response' => $_POST['h-captcha-response']        ]     ]);       $body = $response->getBody();     $arr_body = json_decode($body);     if($arr_body->success) {         // proceed the form     } else {         echo 'Robot verification failed, please try again.';     } } ?>

Надеюсь, вы понимаете интеграцию hCaptcha с PHP с помощью cURL и Guzzle. Пожалуйста, поделитесь своими мыслями и предложениями в разделе комментариев ниже.

Статьи по Теме

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее