Après installation du nouveau reCaptcha de Google
traderpierre
Messages postés
316
Statut
Membre
-
Pitet Messages postés 2845 Statut Membre -
Pitet Messages postés 2845 Statut Membre -
Bonjour,
Je viens d'installer le nouveau recaptcha de Google sur un formulaire,
j'ai fixé les conditions pour qu'il m'affiche si le captcha a été validé ou non.
Tout cela fonctionne si je ne mets pas l'action dans le formulaire.
si l'action est fixée dans la balise <form action=fichiertraitement.php> il m'envoit le formulaire même si le recaptcha n'est pas validé ou invalide.
Comment faire pour bloquer l'action du formulaire si recaptcha n'est pas validé ou invalide.
Merci pour votre aide
Je viens d'installer le nouveau recaptcha de Google sur un formulaire,
j'ai fixé les conditions pour qu'il m'affiche si le captcha a été validé ou non.
Tout cela fonctionne si je ne mets pas l'action dans le formulaire.
si l'action est fixée dans la balise <form action=fichiertraitement.php> il m'envoit le formulaire même si le recaptcha n'est pas validé ou invalide.
Comment faire pour bloquer l'action du formulaire si recaptcha n'est pas validé ou invalide.
Merci pour votre aide
4 réponses
-
Salut !
Si c'est comme ça que tu as écrit ton code, alors tu dois ajouter les apostrophes, remplace par ceci :<form action='fichiertraitement.php'>
Ou :<form action="fichiertraitement.php">
-
Salut,
Ton fichier de traitement php doit vérifier au début du script si le catptcha est valide.
Plus d'info : https://developers.google.com/recaptcha/docs/verify
Bonne journée -
Voici mon code vérification du recaptcha qui doit se trouver impérativement hors formulaire pour passer les messages de validation ou non ou invalide:
<?php
if($_SERVER['REQUEST_METHOD'] === 'POST')
{
$keysecret = 'ma_clé_secrète';
$response = $_POST['g-recaptcha-response'];
$ip = $_SERVER['REMOTE_ADDR'] ;
$erreur = 'vous avez une erreur sur reCAPTCHA';
$reponse_google = 'https://www.google.com/recaptcha/api/siteverify?secret='.$keysecret.'&response='.$response.'&remoteip='.$ip;
$json = json_decode(file_get_contents($reponse_google), true);
if($json['success'])
{
C'est là que je bloque
echo $envoi= 'envois_formulaires/envoi_form_contact.php';
echo 'Bravo ! Vous avez validé correctement reCAPTCHA';
}else{
echo $erreur;
}
}
?> -
Le problème semble venir de la condition
if($json['success'])
qui n'est pas assez précise.
En effet cette condition est vraie tant que la variable $json['success'] n'est pas une chaine vide, or il faut vérifier que cette variable soit également égale à la chaine 'true' :
if($json['success'] === 'true')