Wie validiere ich Google reCAPTCHA v3 auf der Server-Seite mit?
Um einen Google reCAPTCHA v3 auf dem Server-Seite mit PHP zu validieren, musst du folgende Schritte ausführen:
- Installiere die GuzzleHTTP-Bibliothek, mit der du HTTP-Anfragen von PHP ausführen kannst:
composer require guzzlehttp/guzzle
- Füge auf deinem HTML-Formular das reCAPTCHA v3-Widget hinzu, indem du folgendes Skript einfügst:
<script src='https://www.google.com/recaptcha/api.js?render=SITE_KEY'></script>
- Führe im JavaScript deines Formulars das reCAPTCHA v3-Widget aus und hole dir das Token:
grecaptcha.ready(function() {
grecaptcha.execute('SITE_KEY', {action: 'action_name'}).then(function(token) {
document.getElementById('g-recaptcha-response').value = token;
});
});
- Verwende in deinem PHP-Skript die GuzzleHTTP-Bibliothek, um eine POST-Anfrage an die reCAPTCHA-API zu senden und dabei deinen
SECRET_KEY
und das Token des vorherigen Schritts mitzusenden:
$client = new GuzzleHttp\Client();
$response = $client->post('https://www.google.com/recaptcha/api/siteverify', [
'form_params' => [
'secret' => 'SECRET_KEY',
'response' => $token
]
]);
- Decodiere die JSON-Antwort der API und überprüfe, ob die Validierung erfolgreich war:
<?php
$result = json_decode($response->getBody());
if ($result->success) {
// validation was successful
} else {
// validation was unsuccessful
}
Hinweis: Du musst SITE_KEY
und SECRET_KEY
durch die entsprechenden Werte für deine Seite ersetzen.