Wie kann man Google Recaptcha einbinden? Anleitung in HTML und PHP Code für die Einbindung in die eigene Webseite. Es gab zig Fake Registrierungen bei einer Seite von mir. Nach mehreren Benachrichtigungen über neue Nutzer wollte ich ein Captcha einbauen, sodass sich Bots ab sofort nicht mehr registrieren können.
reCAPTCHA Schlüssel anfordern
Einmal auf die Google Recaptcha Seite gehen und eine neue Webseite anlegen.
https://www.google.com/recaptcha/admin
Danach bekommt man zwei Recaptcha Schlüssel geliefert.
Anpassung im HTML Code
Angenommen ein Benutzer Formular soll abgesichert werden (Beispiel: Registration / Login oder sonstiges).
In der Formulardatei ganz oben die API einbinden (HTML Head Bereich):
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
Direkt innerhalb des Formulars das Captcha anzeigen lassen:
<div class="g-recaptcha" data-sitekey="WEBSITESCHLUESSEL"></div>
Wenn man den eigenen Websiteschlüssel nun in den Code einfügt erhält man das korrekte Formular mit dem neuen Captcha Feld:
Überprüfung des Logins in PHP
Nun müssen in einer weiteren Datei die ganzen Registrationsdaten überprüft werden. Stimmen die Passwörter überein? Ist die Email Adresse schon registriert? Sind alle Eingabedaten in dem korrekten Format?
Nach diesen Überprüfungen wird dann letztendlich der Benutzeraccount angelegt. Hier bauen wir nun Google Recaptcha ein.
Dies geht folgendermaßen: Ganz oben innerhalb dieser Datei folgendes einfügen:
require_once "recaptchalib.php";
https://github.com/google/recaptcha/blob/1.0.0/php/recaptchalib.php
Deeplink: https://raw.githubusercontent.com/google/recaptcha/1.0.0/php/recaptchalib.php
Diese Funktionen müssen zuerst eingebunden werden. Nachdem der Code für die Einbindung eingefügt wurde, muss die Datei im selben Verzeichnis abgespeichert werden.
Folgender Code einfügen:
Dieser Code nimmt die Antwort vom Recaptcha ob es erfolgreich überprüft wurde.
$captcharesponse = $_POST['g-recaptcha-response']; $secret = "GEHEIMERSCHLUESSEL"; $response = null; $reCaptcha = new ReCaptcha($secret); if ($_POST["g-recaptcha-response"]) { $response = $reCaptcha->verifyResponse( $_SERVER["REMOTE_ADDR"], $_POST["g-recaptcha-response"] ); }
Ausgabe in HTML
Nun folgt die Auswertung:
if($response != null && $response->success) { #captcha erfolgreich } else { #captcha fehler }
Wenn das Captcha erfolgreich betätigt wurde, folgt das Einfügen des Benutzerkontos in die Datenbank oder irgendwelche anderen Dinge je nach Anwendungszweck. Wenn der Nutzer das Captcha nicht korrekt gelöst wurde, oder irgendein Bot probleme macht, kann man einfach per echo eine Fehlermeldung ausgeben.
Fazit Google Recaptcha
Es wurde nun erfolgreich eingebunden. Entweder der Nutzer bekommt eine Fehlermeldung oder das Konto wird wie gewünscht angelegt.