Après installation du nouveau reCaptcha de Google

traderpierre Messages postés 316 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

4 réponses

  1. bik225 Messages postés 387 Date d'inscription   Statut Membre Dernière intervention   72
     
    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">

    0
    1. traderpierre Messages postés 316 Statut Membre 7
       
      Bonjour,
      Merci pour ta réponse, mais ce n'est pas cela la cause car en réalité les acolades sont présentes dans mon code, mon code correspond bien à ceci : <form action="fichiertraitement.php">

      Merci de me tenir informé su tu as une solution
      0
  2. traderpierre Messages postés 316 Statut Membre 7
     
    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;
    }

    }
    ?>
    0
  3. Pitet Messages postés 2845 Statut Membre 530
     
    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') 
    
    0