Comment vérifier Google reCAPTCHA v3 côté serveur en PHP ?

Linda Hamilton
Libérer: 2024-10-31 13:18:02
original
1020 Les gens l'ont consulté

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

Comment vérifier Google reCAPTCHA v3 côté serveur en PHP

Problème : Vous avez implémenté Google reCAPTCHA v3 avec une case à cocher sur le front-end, mais vous rencontrez des difficultés pour le valider côté serveur. Le formulaire est soumis même lorsque le captcha n'est pas valide.

Solution :

Pour gérer efficacement la validation Google reCAPTCHA v3 côté serveur, il est crucial d'utiliser les requêtes POST . Voici une solution :

<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>
Copier après la connexion

Explication :

  • La fonction isValid() est conçue pour vérifier reCAPTCHA v3 à l'aide d'une requête POST.
  • Il envoie la clé secrète, la réponse captcha et l'adresse IP de l'utilisateur à l'API de Google.
  • La fonction analyse la réponse de l'API et renvoie vrai si le captcha est valide, faux s'il n'est pas valide et null si une erreur se produit lors de la requête.

Utilisation :

Dans votre code, écrivez simplement :

if (isValid()) {
  // The user has passed the captcha validation.
} else {
  // The user has failed the captcha validation.
}
Copier après la connexion

Remarque : Assurez-vous de remplacer [VOTRE CLÉ SECRET] par votre clé secrète reCAPTCHA réelle dans l'extrait de code fourni.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal