✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Um guia de integração do hCaptcha com PHP

245

Recentemente, um de nossos leitores perguntou sobre a integração do hCapctha em um site. O hCaptcha é uma boa alternativa ao serviço reCAPTCHA do Google. Neste artigo, estudamos como adicionar hCapctha com PHP em seu site.

É sempre recomendável ter um captcha nos formulários do site. Os spams são muito ruins e só te deixam frustrado. Você nunca deseja perder seu valioso tempo limpando comentários falsos / desnecessários.

Usando o hCaptcha, o usuário deve resolver os desafios antes de enviar um formulário. E seu formulário deve prosseguir apenas se o captcha passar na verificação. Ao integrar o captcha, ele evita que uma tonelada de spams entrem no banco de dados e na sua caixa de entrada. Porque apenas um ser humano de verdade pode resolver os quebra-cabeças do captcha.

Dito isso, vamos dar uma olhada na integração do hCaptcha com o PHP. É necessário verificar a resposta do hCaptcha no lado do servidor. Vamos escrever o código do lado do servidor usando as bibliotecas cURL e Guzzle. O usuário pode usar qualquer um deles.

Começando

Você precisa primeiro criar uma conta com o serviço hCaptcha. Ao contrário do Google reCAPTCHA, você pode usar as chaves hCaptcha diretamente no seu site. Você não precisa registrar seu domínio com eles.

Mas se desejar, você pode adicionar seu domínio clicando no botão Novo Site. Ele abrirá um formulário onde você deve passar seu domínio para o campo Hostnames.

Em seguida, clique no ícone de configurações da mesa e pegue a chave do seu site.

Um guia de integração do hCaptcha com PHP

Para obter a chave secreta, clique na guia ‘Configurações’.

Um guia de integração do hCaptcha com PHP

Quando você estiver pronto com as chaves, há 2 etapas necessárias a seguir. Primeiro, adicione o hCaptcha em seu formulário. E, em seguida, valide a resposta do captcha no lado do servidor.

Vamos criar um formulário simples e adicionar hCaptcha a ele da seguinte maneira.

<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>

Aqui, incluímos a biblioteca JavaScript de hCaptcha e adicionamos uma classe h-captchaao contêiner div. Você também precisa passar a chave do seu site para a chave do site de dados do atributo de dados.

Recarregue a página e você deverá ver a caixa de seleção hCaptcha adicionada ao formulário. Vamos ver agora como validar a resposta do captcha.

Validar a resposta hCaptcha usando cURL

Quando um usuário envia um formulário junto com um captcha, você precisa verificar a resposta do captcha no lado do servidor. Para verificação, você deve enviar solicitações POST para o endpoint do hCaptcha https://hcaptcha.com/siteverify. Na solicitação POST, os parâmetros são chave secreta e h-captcha-response (que vem do formulário enviado).

Em PHP, podemos usar cURL e Guzzle para interagir com o servidor externo. Ao enviar solicitações por meio de cURL, certifique-se de que a extensão cURL esteja habilitada em seu servidor.

No caso do cURL, seu código será o seguinte para verificar a resposta do 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.';
    }
}
?>

Substitua o marcador pelo valor real. No código acima, estamos verificando se a successvariável é verdadeira na resposta. Se for verdade, o formulário pode prosseguir com segurança.

Validar a resposta hCaptcha usando Guzzle

Guzzle é uma alternativa ao cURL. Ele fornece um código muito mais limpo em comparação com cURL. Se você estiver usando o Guzzle, não precisa ter uma extensão cURL em seu servidor.

Para começar, você precisa primeiro instalar a biblioteca Guzzle em seu projeto. Execute o comando abaixo para a instalação de uma biblioteca.

composer require guzzlehttp/guzzle

Depois disso, escreva o código abaixo que verificará a resposta do hCAPTCHA usando a biblioteca 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.';
    }
}
?>

Espero que você entenda a integração do hCaptcha com PHP usando cURL e Guzzle. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.

Artigos relacionados

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação