Afficher un bouton "envoyer" après validation reCAPTCHA

Afficher un bouton "envoyer" après validation reCAPTCHA - Javascript/Node.js - Programmation

Marsh Posté le 11-08-2020 à 14:37:58    

Bonjour à tous,  
 
Dans un formulaire de contact, j'essai de faire en sorte que mon bouton submit ne soit visible que lorsque le reCAPTCHA soit valide.  
 
J'ai bien réussis à cacher mon bouton mais il ne devient pas visible quand le captcha est valide  :??: .  
 
Une petite idée ? une solution ?  
Surement mon code en java qui pose problème  :(  
 
Merciii  
 
Voici mon code :  

Code :
  1. <h2>Formulaire de contact : </h2>
  2.  
  3.    
  4.      <form name="contact_form" method="post" action="contact_recap.php">
  5.     <fieldset class="contact1"><legend> Vos coordonnées </legend>
  6.         <p><label for="nom">Nom / Prénom</label>
  7.            
  8.       <input class="contact3" type="text" name="nom" id="nom" autocomplete="name" required> </p>
  9.         <p><label for="email">Email</label><br />
  10.       <input class="contact3" type="email" name="email" id="email" autocomplete="email" required> </p>
  11.        
  12.        
  13.       <p><label for="telephone">Téléphone</label><br />
  14.       <input class="contact3"  type="tel" name="telephone" id="telephone" autocomplete="tel" required> </p>
  15.        
  16.    
  17.         <p><label for="lieu">Lieu de l'événement</label><br />
  18.       <input class="contact3"  type="text" name="lieu" id="lieu" required> </p>
  19.        
  20. <?php
  21. $d = new DateTime();
  22. $d->add(new DateInterval('P3D'));
  23. ?>   
  24.        
  25.         <p><label for="date">Date de l'événement</label><br />
  26.       <input class="contact3"  type="date" name="date" id="date" required value="<?=$d->format('Y-m-d');?>" required min="<?=$d->format('Y-m-d');?>" max="2025-12-31"> </p>
  27.        
  28.                 </fieldset>
  29.     <fieldset class="contact2"><legend> Votre message </legend>
  30.        
  31.        
  32.        
  33.         <p><label for="objet">Objet de la demande</label><br />
  34.       <input class="contact3"  type="text" name="objet" id="objet" required> </p>
  35.        
  36.        
  37.       <p><label for="message">Votre message</label>
  38.       <textarea class="contact3" name="message" cols="30" rows="7" id="message" required></textarea> </p>
  39.        
  40.    
  41.        
  42.       <div class="g-recaptcha" data-sitekey="la_cle_du_site"></div>
  43.        
  44.        
  45. <?php
  46.        
  47.     // Ma clé privée
  48.     $secret = "la_cle_secrete";
  49.     // Paramètre renvoyé par le recaptcha
  50.     $response = $_POST['g-recaptcha-response'];
  51.     // On récupère l'IP de l'utilisateur
  52.     $remoteip = $_SERVER['REMOTE_ADDR'];
  53.     $api_url = "https://www.google.com/recaptcha/api/siteverify?secret="
  54.         . $secret
  55.         . "&response=" . $response
  56.         . "&remoteip=" . $remoteip ;
  57.    
  58.     $decode = json_decode(file_get_contents($api_url), true);
  59.    
  60.     if ($decode['success'] == true) {
  61.         // C'est un humain
  62.     }
  63.    
  64.     else {
  65.         // C'est un robot ou le code de vérification est incorrecte
  66.     }     
  67.        
  68.        
  69. ?>
  70.        
  71.        
  72.        
  73.      <p>Tous les champs sont obligatoires</p> 
  74.                   </fieldset>
  75.        
  76.  
  77. <script type="text/javascript">
  78. function Change1() {
  79. if ((document.getElementById($decode).true)) {
  80. document.getElementById('madiv1').style.visibility="visible";
  81. }
  82. else {
  83. document.getElementById('madiv1').style.visibility="hidden";
  84. }
  85. }
  86. </script>
  87.      
  88.  
  89.          
  90.     <div id="madiv1" style="visibility:hidden;"><input type="submit" value=" Envoyer votre demande " class="contact4"></div>
  91.  
  92.          
  93.       </form>


Message édité par kennyfal le 11-08-2020 à 15:30:25
Reply

Marsh Posté le 11-08-2020 à 14:37:58   

Reply

Marsh Posté le 11-08-2020 à 14:54:43    

Je peux pas te répondre sur le problème en soit, mais c'est du Javascript, rien à voir avec du Java. Tu peux éditer ton message / le titre.
 
Sinon tu devrais absolument prévoir une validation côté serveur aussi, car un bouton caché côté client c'est 3 clics pour le faire réapparaître (et les bots ne vont même pas voir le "hidden" probablement).

Reply

Marsh Posté le 14-08-2020 à 17:48:23    

Hello
D'après moi ton souci c'est que tu cherche à récupérer le contenu d'une variable php directement en JS et tu ne peux pas le faire comme ça :
 
(document.getElementById($decode).true)  
 
tu doit avoir des erreurs dans ta console du navigateur à mon avis la.
 
Le document.getElementById ça te permet de récupérer un élément du DOM, or ta variable php n'est retourné nulle part dans le DOM


---------------
Watercooling X58 One Hundred - Watercooling Pure Base 500
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed