Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verifiziert man Google reCAPTCHA v3 auf der Serverseite in PHP?

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

Linda Hamilton
Linda HamiltonOriginal
2024-10-31 13:18:02943Durchsuche

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>

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.
}

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!

Stellungnahme:
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