Wie verifiziert man Google reCAPTCHA v3 auf der Serverseite in PHP?

Linda Hamilton
Freigeben: 2024-10-31 13:18:02
Original
1021 Leute haben es durchsucht

How to Verify Google reCAPTCHA v3 on the Server Side in PHP?

So überprüfen Sie Google reCAPTCHA v3 auf der Serverseite in PHP

Problem: Sie haben Google reCAPTCHA v3 mit einem Kontrollkästchen auf der Serverseite implementiert Front-End, aber Sie haben Schwierigkeiten, es auf der Serverseite zu validieren. Das Formular wird auch dann gesendet, wenn das Captcha ungültig ist.

Lösung:

Um die Validierung von Google reCAPTCHA v3 auf der Serverseite effektiv durchzuführen, ist es wichtig, POST-Anfragen zu verwenden . Hier ist eine Lösung:

<code class="php">function isValid()
{
    try 
    {
        $url = 'https://www.google.com/recaptcha/api/siteverify';
        $data = [
            'secret'   => '[YOUR SECRET KEY]',
            'response' => $_POST['g-recaptcha-response'],
            'remoteip' => $_SERVER['REMOTE_ADDR']
        ];

        $options = [
            'http' => [
                'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
                'method'  => 'POST',
                'content' => http_build_query($data)
            ]
        ];

        $context  = stream_context_create($options);
        $result = file_get_contents($url, false, $context);
        return json_decode($result)->success;
    }
    catch (Exception $e) 
    {
        return null;
    }
}</code>
Nach dem Login kopieren

Erklärung:

  • Die Funktion isValid() wurde entwickelt, um reCAPTCHA v3 mithilfe einer POST-Anfrage zu überprüfen.
  • Sie sendet den geheimen Schlüssel, die Captcha-Antwort und die IP-Adresse des Benutzers an die API von Google.
  • Die Funktion analysiert die Antwort der API und gibt true zurück, wenn das Captcha gültig ist, false, wenn es ungültig ist, und null, wenn ein Fehler vorliegt tritt während der Anfrage auf.

Verwendung:

In Ihren Code schreiben Sie einfach:

if (isValid()) {
  // The user has passed the captcha validation.
} else {
  // The user has failed the captcha validation.
}
Nach dem Login kopieren

Hinweis: Stellen Sie sicher, dass Sie [IHR GEHEIMSCHLÜSSEL] im bereitgestellten Code-Snippet durch Ihren tatsächlichen reCAPTCHA-Geheimschlüssel ersetzen.

Das obige ist der detaillierte Inhalt vonWie verifiziert man Google reCAPTCHA v3 auf der Serverseite in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage