...
✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Integrieren Sie Google Invisible reCAPTCHA mit PHP

168

Das Hinzufügen von Captcha auf den Website-Formularen ist heutzutage notwendig. Andernfalls füllen sich Ihr Posteingang und Ihre Datenbank mit Tonnen von Spam. Es verschwendet nur unsere Zeit beim Bereinigen von E-Mails und belegt auch zusätzlichen Platz in der Serverdatenbank.

Google reCAPTCHA ist eine bessere Möglichkeit, Ihre Formulare vor Bots zu schützen. Wenn Sie reCAPTCHA verwenden, werden Sie mit Ihren Formularen nur fortfahren, wenn es echte menschliche Interaktionen gibt.

In diesem Artikel untersuchen wir, wie Sie Google Invisible reCAPTCHA mit PHP in Ihre Website-Formulare integrieren. Bei Invisible reCAPTCHA müssen Ihre Besucher keine Rätsel lösen. Es muss die Anfrage im Hintergrund auf der Serverseite validieren.

Registrieren Sie die Site und erhalten Sie API-Schlüssel

Um zu beginnen, registrieren Sie Ihre Site hier – https://www.google.com/recaptcha/admin.

Wählen Sie eine Option "Unsichtbares reCAPTCHA-Abzeichen" aus "reCAPTCHA v2".

Integrieren Sie Google Invisible reCAPTCHA mit PHP

Fügen Sie Ihre Domain im gleichen Formular hinzu. Sie können beliebig viele Domänen einfügen. Bei einem lokalen Server wird die Domäne als localhost hinzugefügt. Beim Absenden eines Formulars erhalten Sie die API-Schlüssel. Kopieren Sie diese Schlüssel. Sie wird in den nächsten Schritten benötigt.

Integrieren Sie Google Invisible reCAPTCHA mit PHP

Integrieren Sie Google Invisible reCAPTCHA

Um ein unsichtbares reCAPTCHA in das Formular einzufügen, ist ein etwas anderer Ansatz erforderlich. Wir müssen Datenattribute an die Schaltfläche übergeben und das Formular mit JavaScript wie folgt senden.

<form method="post" id="userForm">
    <p><input type="text" class="form-control" name="fullname" placeholder="Enter full name" /></p>
    <p><button class="g-recaptcha btn btn-primary" data-sitekey="YOUR_SITE_KEY" data-callback="submitForm">Submit</button></p>
</form>
 
<script src='https://www.google.com/recaptcha/api.js'></script>
<script>
function submitForm() {
    document.getElementById('userForm').submit();
}
</script>

Dieser Code fügt Ihrem Formular unsichtbares reCAPTCHA hinzu. Wenn Sie die Seite neu laden, sehen Sie das reCAPTCHA-Logo in der unteren rechten Ecke der Seite.

Hier haben wir den reCAPTCHA-Site-Key an das ‘data-sitekey’-Attribut und den Methodennamen ‘submitForm’ an das ‘data-callback’-Attribut übergeben. Wenn der Benutzer auf die Schaltfläche klickt, ruft er die Callback-Methode auf, die ein Formular mit JavaScript sendet.

Jetzt ist es Zeit für die serverseitige Validierung. Wir überprüfen den Wert der reCAPTCHA-Antwort anhand der Google API-URL wie folgt.

if (isset($_POST['g-recaptcha-response'])) {
    $secret_key = 'YOUR_SECRET_KEY';
    $url = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret_key.'&response='.$_POST['g-recaptcha-response'];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    $data = curl_exec($curl);
    curl_close($curl);
    $responseCaptchaData = json_decode($data);
 
    if($responseCaptchaData->success) {
        echo 'Captcha verified';
        //proceed with form values
    } else {
        echo 'Verification failed';
    }
}

Wenn ein echter Mensch Ihr Formular abschickt, generiert es eine reCAPTCHA-Antwort, die dann mit dem obigen Code mit der Google-API überprüft wird. Wenn das Formular über Bots gesendet wird, schlägt die obige Überprüfung fehl. Sie sollten mit dem Formular nur im Falle einer Erfolgsantwort fortfahren.

Unser endgültiger Code ist wie folgt.

<?php
if (isset($_POST['g-recaptcha-response'])) {
    $secret_key = 'YOUR_SECRET_KEY';
    $url = 'https://www.google.com/recaptcha/api/siteverify?secret='.$secret_key.'&response='.$_POST['g-recaptcha-response'];
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    $data = curl_exec($curl);
    curl_close($curl);
    $responseCaptchaData = json_decode($data);
 
    if($responseCaptchaData->success) {
        echo 'Captcha verified';
        //proceed with form values
    } else {
        echo 'Verification failed';
    }
}
?>
<form method="post" id="userForm">
    <p><input type="text" class="form-control" name="fullname" placeholder="Enter full name" /></p>
    <p><button class="g-recaptcha btn btn-primary" data-sitekey="YOUR_SITE_KEY" data-callback="submitForm">Submit</button></p>
</form>
 
<script src='https://www.google.com/recaptcha/api.js'></script>
<script>
function submitForm() {
    document.getElementById('userForm').submit();
}
</script>

Das ist es! Genießen Sie Spam-freie Formulare auf Ihrer Website. Ich würde gerne Ihre Gedanken und Vorschläge im Kommentarbereich unten hören.

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen