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>
Explication :
Utilisation :
Dans votre code, écrivez simplement :
if (isValid()) { // The user has passed the captcha validation. } else { // The user has failed the captcha validation. }
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!