die Dokumentation:
https://developers.google.com/recaptcha/docs/verify
die Antwort des Benutzers überprüfen
Diese Seite wird erklärt, wie die Antwort des Benutzers auf eine reCAPTCHA Herausforderung Backends aus Ihrer Anwendung zu überprüfen. Wenn ein reCAPTCHA vom Endbenutzer gelöst wird, wird ein neues Feld (g-recaptcha-response) in HTML eingefügt. Sie können die Antwort des Benutzers in eine von drei Arten erhalten:
g-recaptcha-Wirkungs-POST-Parameter, wenn der Benutzer das Formular auf Ihrer Website einreicht grecaptcha.getResponse (opt_widget_id), nachdem der Benutzer die CAPTCHA Herausforderung Als Zeichenfolge abgeschlossen Argument für Ihre Callback-Funktion, wenn Datenrückruf entweder im g-recaptcha-Tag-Attribut oder im Callback-Parameter in der grecaptcha.render-Methode angegeben ist Jede reCAPTCHA-Antwort ist ein Token, das nur einmal verwendet werden sollte. Wenn ein Verifizierungsversuch mit einem bestimmten Token unternommen wurde, kann er nicht erneut verwendet werden. Sie müssen grecaptcha.reset() aufrufen, um den Endbenutzer zur erneuten Überprüfung mit reCAPTCHA aufzufordern.
Nachdem Sie das Antworttoken erhalten haben, müssen Sie es mit reCAPTCHA mithilfe der folgenden API überprüfen, um sicherzustellen, dass das Token gültig ist.
API anfordern
URL: https://www.google.com/recaptcha/api/siteverify
Methode: POST
POST Parameter Beschreibung Geheimnis Erforderlich. Der gemeinsame Schlüssel zwischen Ihrer Website und reCAPTCHA. Antwort erforderlich. Das Benutzerantwort-Token, das von reCAPTCHA bereitgestellt wird und den Benutzer auf Ihrer Website überprüft. remoteip Optional. Die IP-Adresse des Benutzers. API Antwort
Die Antwort ist ein JSON-Objekt:
{
"success": true|false,
"challenge_ts": timestamp, // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
"hostname": string, // the hostname of the site where the reCAPTCHA was solved
"error-codes": [...] // optional
}
PHP Beispiel:
// set post fields
$post = [
'secret' => $secret,
'response' => $_POST['g-recaptcha-response'],
'remoteip' => $_SERVER['REMOTE_ADDR']
];
$ch = curl_init('https://www.google.com/recaptcha/api/siteverify');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
// execute!
$response = curl_exec($ch);
// close the connection, release resources used
curl_close($ch);
// do anything you want with your response
var_dump(json_decode($response));
Danke Bruder :) – Zayn