Wichtig: Version 1.0 der reCAPTCHA API wird nicht mehr unterstützt. Führen Sie ein Upgrade auf Version 2.0 aus. Weitere Informationen
Die reCAPTCHA PHP-Bibliothek bietet eine einfache Möglichkeit, ein CAPTCHA auf einem Ihrer PHP-Website, um den Missbrauch durch Bots zu verhindern. Die Bibliothek umfasst die reCAPTCHA API.
Wenn Sie reCAPTCHA mit PHP verwenden möchten, können Sie reCAPTCHA PHP herunterladen Bibliothek. Sie benötigen von dort nur eine Datei (recaptchalib.php). Die anderen Dateien sind -Beispiele, Readme und rechtliche Hinweise. Sie haben keinen Einfluss auf die Funktionalität.
Schnellstart
Nachdem Sie sich für Ihre API-Schlüssel registriert haben, finden Sie im Folgenden eine grundlegende Anleitung zur Installation von reCAPTCHA auf Ihrer Website. Eine vollständige für das PHP-Plug-in finden Sie unten.
Clientseitig (Anleitung zum Anzeigen des CAPTCHA-Bildes)
Wenn Sie die PHP-Bibliothek zur Anzeige des reCAPTCHA-Widgets verwenden möchten, müssen Sie dieses Code-Snippet im <form>-Tag -Element, in dem sich das reCAPTCHA-Widget befindet platziert:
require_once('recaptchalib.php'); $publickey = "your_public_key"; // you got this from the signup page echo recaptcha_get_html($publickey);
Mit dem Code könnte Ihr Formular in etwa so aussehen:
<html> <body> <!-- the body tag is required or the CAPTCHA may not show on some browsers --> <!-- your HTML content --> <form method="post" action="verify.php"> <?php require_once('recaptchalib.php'); $publickey = "your_public_key"; // you got this from the signup page echo recaptcha_get_html($publickey); ?> <input type="submit" /> </form> <!-- more of your HTML content --> </body> </html>
Vergessen Sie nicht, $publickey festzulegen, indem Sie your_public_key
durch
Ihren öffentlichen API-Schlüssel.
Beachten Sie, dass der Wert der Aktion ist "verify.php". Jetzt ist „verify.php“ die Zieldatei, an die die Werte dieses Formulars gesendet werden. Sie benötigen also eine Datei, sich am selben Speicherort wie die Client-HTML befindet.
Für die Funktion „require_once“ im obigen Beispiel wird erwartet, dass sich „recaptchalib.php“ im selben
als Formulardatei verwenden. Wenn sie sich in einem anderen Verzeichnis befindet, müssen Sie sie entsprechend verknüpfen.
Beispiel: Die Datei „recaptchalib.php“ befindet sich im Verzeichnis „captcha“. auf demselben
als Ihre Formulardatei festlegen, sieht die Funktion so aus:
require_once('captcha/recaptchalib.php')
Serverseitig (So können Sie testen, ob der Nutzer die richtige Antwort eingegeben hat)
Der folgende Code sollte ganz oben in der Datei „verify.php“ platziert werden:
<?php require_once('recaptchalib.php'); $privatekey = "your_private_key"; $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { // What happens when the CAPTCHA was entered incorrectly die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . "(reCAPTCHA said: " . $resp->error . ")"); } else { // Your code here to handle a successful verification } ?>
Im obigen Code gilt Folgendes:
recaptcha_check_answer
gibt ein Objekt zurück, das angibt, ob der Nutzer
hat den Wettkampf erfolgreich abgeschlossen.$resp->is_valid
auf „true“ gesetzt ist, wurde die Captcha-Aufgabe korrekt ausgeführt und Sie sollten mit der Formularverarbeitung fortfahren.$resp->is_valid
„false“ ist, hat der Nutzer nicht das richtige Captcha eingegeben
und Sie sollten das Formular erneut öffnen, um ihnen einen weiteren Versuch zu ermöglichen. In diesem Fall
$resp->error
ist ein Fehlercode, der recaptcha_get_html
angegeben werden kann.
Wird der Fehlercode übergeben, zeigt das reCAPTCHA-Steuerelement eine Meldung an, dass der Nutzer
hat den Text falsch eingegeben. Versuchen Sie es erneut.Dieser Code fragt nach dem Schlüssel private. Dies ist nicht zu verwechseln. mit dem öffentlichen Schlüssel. Sie erhalten ihn von derselben Seite wie den öffentlichen Schlüssel.
Stellen Sie außerdem sicher, dass Ihr Formular so eingestellt ist, dass die Formularvariablen mit $_POST anstelle von $_REQUEST und dass für das Formular selbst die POST-Methode verwendet wird.
Das war's! reCAPTCHA sollte jetzt auf Ihrer Website funktionieren.
Weiterführende Literatur
Referenzhandbuch für PHP-Plug-ins
Nachfolgend finden Sie eine umfassende Liste aller Methoden des reCAPTCHA-PHP-Plug-ins.
Die Funktion "recaptcha_get_html"
Mit der Funktion recaptcha_get_html
wird der HTML-Code angezeigt, der reCAPTCHA dem Nutzer präsentiert.
die
Nutzer.
recaptcha_get_html | |
Parameter | |
$pubkey -- String. erforderlich. | Ihr öffentlicher reCAPTCHA-Schlüssel von der API-Anmeldeseite |
$error -- Zeichenfolge. optional (Null ist die Standardeinstellung) | Wenn dieser String festgelegt ist, wird im reCAPTCHA-Bereich der Fehlercode angezeigt gegeben ist. Dieser Fehlercode stammt von „reCaptchaResponse->$error“. |
$use_ssl -- boolean. optional (falsch ist die Standardeinstellung) | Sollte die SSL-basierte API verwendet werden? Wenn Sie eine Seite für die über SSL verwenden, setzen Sie diese Einstellung auf "true", damit ein Fehlerdialogfeld die im Browser der Nutzenden angezeigt werden. |
Rückgabewert | Ein String mit HTML, der in die Webseite eingefügt werden soll. |
Die Funktion „recaptcha_check_answer“
Nachdem der Nutzer das HTML-Formular einschließlich seiner Antwort für das CAPTCHA ausgefüllt hat,
möchten ihre Antwort überprüfen, wenn sie das Formular über die
recaptcha_check_answer
. Die Antwort wird in zwei Formularfeldern angezeigt:
recaptcha_challenge_field
und recaptcha_response_field
. Die
Die reCAPTCHA-Bibliothek sendet eine HTTP-Anfrage an den reCAPTCHA-Server und überprüft die
Antwort.
recaptcha_check_answer | |
Parameter | |
$privkey - Zeichenfolge. erforderlich. | Ihr privater reCAPTCHA-Schlüssel von der API-Anmeldeseite |
$remoteip -- String. erforderlich. | Die IP-Adresse des Nutzers im Format 192.168.0.1 |
$challenge -- string erforderlich. |
Der Wert des Formularfelds „recaptcha_challenge_field“ |
$response -- String. erforderlich | Der Wert des Formularfelds „recaptcha_response_field“ |
Rückgabewert | Instanz der ReCaptchaResponse-Klasse |
ReCaptchaResponse | |
Feld | |
$is_valid -- boolean | Gab es reCAPTCHA, dass die Antwort gültig war? |
$error -- Zeichenfolge | Falls die Antwort ungültig war, was war das Problem? Dieser Fehlercode kann verwendet in reCAPTCHA_get_html |
Rückgabewert | Die HTML- oder Raw-URL zur Decodierung der E-Mail-Adresse, je nachdem, welche Funktion Sie verwenden. aufgerufen. |
Mailhide
Die reCAPTCHA-PHP-Bibliothek enthält Bindungen für die Mailhide-API. Dieses Mit der API können Sie eine E-Mail in ein reCAPTCHA einbetten, um zu verhindern, dass Spammer sie sehen: prüfung...@beispiel.de.
Für den Mailhide-Teil der PHP-Bibliothek ist das PHP-Modul mcrypt erforderlich.
Die Mailhide-API besteht aus den beiden Funktionen recaptcha_mailhide_html
und
recaptcha_mailhide_url
. Die Funktionen haben die gleichen Parameter. Die _html-Version
gibt HTML zurück
die Sie direkt auf Ihrer Webseite einfügen können. Der Nutzername der E-Mail, der übergeben wird
wird abgeschnitten und durch einen Link ersetzt, über den Mailhide aufgerufen wird. Die _url-Version gibt die URL an.
um die E-Mail zu decodieren. Es bleibt Ihnen überlassen, die E-Mail im HTML-Format zu platzieren.
reCAPTCHA_mailhide_url / recaptcha_mailhide_html | |
Parameter | |
$pubkey – String | Den öffentlichen Mailhide-Schlüssel von der Anmeldeseite |
$privkey - Zeichenfolge | Den privaten Mailhide-Schlüssel von der Anmeldeseite |
$email -- Zeichenfolge | Die E-Mail-Adresse, die Sie ausblenden möchten. |
Das folgende Beispiel zeigt, wie Mailhide verwendet wird:
<html><body> <? require_once ("recaptchalib.php"); // get a key at http://www.google.com/recaptcha/mailhide/apikey $mailhide_pubkey = ''; $mailhide_privkey = ''; ?> The Mailhide encoding of example@example.com is <? echo recaptcha_mailhide_html ($mailhide_pubkey, $mailhide_privkey, "example@example.com"); ?>. <br> The url for the email is: <? echo recaptcha_mailhide_url ($mailhide_pubkey, $mailhide_privkey, "example@example.com"); ?> <br> </body></html>