...
✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Una guida all’integrazione di hCaptcha con PHP

93

Recentemente uno dei nostri lettori ha chiesto informazioni sull’integrazione di hCapctha su un sito web. L’ hCaptcha è una bella alternativa al servizio Google reCAPTCHA. In questo articolo, studiamo come si può aggiungere hCapctha con PHP sul proprio sito web.

Si consiglia sempre di avere un captcha nei moduli del sito web. Gli spam sono davvero brutti e ti frustrano. Non vorrai mai sprecare il tuo tempo prezioso per cancellare commenti falsi/non necessari.

Utilizzando hCaptcha, l’utente deve risolvere le sfide prima di inviare un modulo. E il tuo modulo dovrebbe procedere solo se il captcha supera la sua verifica. Integrando captcha, evita che un sacco di spam entrino nel database e nella tua casella di posta. Perché solo un vero umano può risolvere gli enigmi del captcha.

Detto questo, diamo un’occhiata all’integrazione di hCaptcha con PHP. Richiede di verificare la risposta hCaptcha sul lato server. Scriveremo il codice lato server utilizzando sia cURL che la libreria Guzzle. L’utente può utilizzarne uno qualsiasi.

Iniziare

Devi prima creare un account con il servizio hCaptcha. A differenza di Google reCAPTCHA, puoi utilizzare le chiavi hCaptcha direttamente sul tuo sito web. Non è necessario registrare il tuo dominio con loro.

Ma se lo desideri, puoi aggiungere il tuo dominio facendo clic sul pulsante +Nuovo sito. Si aprirà un modulo in cui devi passare il tuo dominio al campo Hostnames.

Quindi, fai clic sull’icona delle impostazioni dalla tabella e prendi la chiave del tuo sito.

Una guida all'integrazione di hCaptcha con PHP

Per ottenere la chiave segreta, fai clic sulla scheda "Impostazioni".

Una guida all'integrazione di hCaptcha con PHP

Una volta che sei pronto con le chiavi, sono necessari 2 passaggi da seguire. Innanzitutto, aggiungi hCaptcha al tuo modulo. E poi convalidare la risposta captcha sul lato server.

Creiamo un modulo semplice e aggiungiamo hCaptcha come segue.

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

Qui abbiamo incluso la libreria JavaScript di hCaptcha e aggiunto una classe h-captchaal contenitore div. Devi anche passare la tua chiave del sito all’attributo dei dati data-sitekey.

Ricarica la pagina e ora dovresti vedere la casella di controllo hCaptcha aggiunta al modulo. Vediamo ora come validare la risposta captcha.

Convalida la risposta hCaptcha utilizzando cURL

Quando un utente invia un modulo insieme a un captcha, è necessario verificare la risposta captcha sul lato server. Per la verifica, devi inviare richieste POST all’endpoint di hCaptcha https://hcaptcha.com/siteverify. Nella richiesta POST, i parametri sono la chiave segreta e h-captcha-response (che proviene dal modulo inviato).

In PHP, possiamo usare sia cURL che Guzzle per interagire con il server esterno. Durante l’invio di richieste tramite cURL, assicurati che l’estensione cURL sia abilitata sul tuo server.

In caso di cURL, il tuo codice sarà il seguente per verificare la risposta 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.';
    }
}
?>

Sostituisci il segnaposto con il valore effettivo. Nel codice sopra, stiamo controllando se la successvariabile è vera nella risposta. Se è vero, il modulo è sicuro per procedere.

Convalida la risposta hCaptcha utilizzando Guzzle

Guzzle è un’alternativa a cURL. Ti fornisce un codice molto più pulito rispetto a cURL. Se stai usando Guzzle, non hai bisogno di avere un’estensione cURL sul tuo server.

Per iniziare, devi prima installare la libreria Guzzle nel tuo progetto. Eseguire il comando seguente per l’installazione di una libreria.

composer require guzzlehttp/guzzle

Successivamente, scrivi il codice sottostante che verificherà la risposta hCAPTCHA utilizzando la libreria 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.';
    }
}
?>

Spero che tu capisca l’integrazione di hCaptcha con PHP usando cURL e Guzzle. Per favore condividi i tuoi pensieri e suggerimenti nella sezione commenti qui sotto.

articoli Correlati

Fonte di registrazione: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More