✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Przewodnik po integracji hCaptcha z PHP

49

Ostatnio jeden z naszych czytelników zapytał o integrację hCapctha na stronie internetowej. HCaptcha jest miłą alternatywą do usługi Google reCAPTCHA. W tym artykule dowiemy się, jak można dodać hCapctha z PHP na swojej stronie internetowej.

Zawsze zaleca się umieszczanie captcha na formularzach na stronie. Spamy są naprawdę złe i po prostu Cię frustrują. Nigdy nie chcesz tracić cennego czasu na usuwanie fałszywych/niepotrzebnych komentarzy.

Korzystając z hCaptcha, użytkownik musi rozwiązać wyzwania przed przesłaniem formularza. A Twój formularz powinien działać tylko wtedy, gdy captcha przejdzie jego weryfikację. Integrując captcha, oszczędza mnóstwo spamu przed wejściem do bazy danych i skrzynki odbiorczej. Ponieważ tylko prawdziwy człowiek może rozwiązać zagadkę captcha.

Powiedziawszy to, przyjrzyjmy się integracji hCaptcha z PHP. Wymaga weryfikacji odpowiedzi hCaptcha po stronie serwera. Napiszemy kod po stronie serwera, używając zarówno cURL, jak i biblioteki Guzzle. Użytkownik może skorzystać z dowolnego z nich.

Pierwsze kroki

Musisz najpierw założyć konto w usłudze hCaptcha. W przeciwieństwie do Google reCAPTCHA, możesz używać kluczy hCaptcha bezpośrednio w swojej witrynie. Nie musisz rejestrować u nich swojej domeny.

Ale jeśli chcesz, możesz dodać swoją domenę, klikając przycisk +Nowa witryna. Otworzy się formularz, w którym musisz przekazać swoją domenę do pola Hostnames.

Następnie kliknij ikonę ustawień z tabeli i pobierz klucz witryny.

Przewodnik po integracji hCaptcha z PHP

Aby pobrać tajny klucz, kliknij kartę „Ustawienia".

Przewodnik po integracji hCaptcha z PHP

Gdy będziesz gotowy z kluczami, musisz wykonać 2 kroki. Najpierw dodaj hCaptcha do swojego formularza. A następnie sprawdź poprawność odpowiedzi captcha po stronie serwera.

Stwórzmy prosty formularz i dodajmy do niego hCaptcha w następujący sposób.

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

Tutaj dodaliśmy bibliotekę JavaScript hCaptcha i dodaliśmy klasę h-captchado kontenera div. Musisz też przekazać klucz witryny do atrybutu data data-sitekey.

Załaduj ponownie stronę i powinieneś teraz zobaczyć pole wyboru hCaptcha dodane do formularza. Zobaczmy teraz, jak zweryfikować odpowiedź captcha.

Sprawdź odpowiedź hCaptcha za pomocą cURL

Gdy użytkownik przesyła formularz wraz z captcha, musisz zweryfikować odpowiedź captcha po stronie serwera. W celu weryfikacji musisz wysłać żądania POST do punktu końcowego hCaptcha https://hcaptcha.com/siteverify. W żądaniu POST parametrami są tajny klucz i h-captcha-response (pochodzące z przesłanego formularza).

W PHP możemy używać zarówno cURL, jak i Guzzle do interakcji z zewnętrznym serwerem. Podczas wysyłania żądań przez cURL upewnij się, że rozszerzenie cURL jest włączone na twoim serwerze.

W przypadku cURL Twój kod będzie wyglądał następująco, aby zweryfikować odpowiedź 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.';     } } ?>

Zastąp symbol zastępczy rzeczywistą wartością. W powyższym kodzie sprawdzamy, czy successzmienna jest prawdziwa w odpowiedzi. Jeśli to prawda, formularz można bezpiecznie kontynuować.

Sprawdź odpowiedź hCaptcha za pomocą Guzzle

Guzzle jest alternatywą dla cURL. Zapewnia znacznie czystszy kod w porównaniu do cURL. Jeśli używasz Guzzle, nie musisz mieć rozszerzenia cURL na swoim serwerze.

Aby rozpocząć, musisz najpierw zainstalować bibliotekę Guzzle w swoim projekcie. Uruchom poniższe polecenie, aby zainstalować bibliotekę.

composer require guzzlehttp/guzzle

Następnie napisz poniższy kod, który zweryfikuje odpowiedź hCAPTCHA za pomocą biblioteki 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.';     } } ?>

Mam nadzieję, że rozumiesz integrację hCaptcha z PHP za pomocą cURL i Guzzle. Podziel się swoimi przemyśleniami i sugestiami w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów