Capatcha

Signaler
-
Messages postés
32933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juin 2021
-
Bonjour,
je suis novice ne php ... je vient d'inséré un captcha qui fonctionne bien sauf quand je valide le formulaire le bouton poster n'a aucune action :(
voici mon code PHP:
<?php 

   if (isset($_POST['submit'])) {
    extract($_POST);

    if (!empty($nom) and !empty($email) and !empty($message)) {
     require_once('includes/db.php');

     $req=$db->prepare('INSERT INTO commentaires(nom,email,messages,datepost) VALUES(?,?,?,NOW())');
     $req->execute(array($nom,$email,$message));
    }

   }

 ?>
<!DOCTYPE html>
<html>
<center>
<img src="logo.jpg" />
</center>
<head>
 <title>Annonces Help !! Malinois</title>
 <meta charset="utf-8">
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
 <style type="text/css">
  section{
   width: 50%;
   margin-left: auto;
   margin-right: auto;
  }
  span{
   font-size: 13px;
   color:#777;
  }
 </style>
</head>
<body>
   <section>
      
  <center>
       <h2>Petites Annonces</h2> <br>
  </center>
       <form method="POST" action="">
          <input type="text" name="nom" placeholder="Nom:"  required="" class="form form-control"><br>
          <input type="email" name="email" placeholder="Email:"  required="" class="form form-control"><br>
          <textarea name="message" placeholder="Méssage:" required="" class="form form-control"></textarea><br>
    <!-- <input type="submit" name="submit" value="Poster" class="btn btn-primary">  -->
  <center>
  <script src="https://www.google.com/recaptcha/api.js"></script>

  </center><script>
   function onSubmit(token) {
     document.getElementById("demo-form").submit();
   }
 </script>
 <center>
 <button class="g-recaptcha" 
        data-sitekey="6Ldg7BAbAAAAACgNJ1sN2zncBHufgbijqcAjN-iW" 
        data-callback='onSubmit' 
  data-action='submit'>POSTER</button>
  
        
  </center>
       </form><br><br><br><br>

       <h3>Annonces postées</h3><br>
       
         <?php 
             require_once('includes/db.php'); 
             $req=$db->prepare('SELECT *FROM commentaires');
             $req->execute();
             while ($reponse = $req->fetch(PDO::FETCH_OBJ)) {
            
            ?>
             <p>
              <span>Poster par <?php echo $reponse->nom; ?> le <?php echo $reponse->datepost; ?></span><br>
              <?php echo $reponse->messages; ?><br><a href="reponses.php?id=<?php echo $reponse->id;?> "class="btn btn-primary" >Répondre</a><br>
               <a style="color:#2DA53B" href="reponses.php?id=<?php echo $reponse->id;?>">
                Nomre de réponses: 
        
                      <?php 
                      
                      $nbReponse = $db->prepare('SELECT *FROM reponses WHERE id_parent = ?');
                      $nbReponse->execute(array($reponse->id));

                      $nbReponse = $nbReponse->fetchAll();
                      
                      echo count($nbReponse);
     
                       ?>
        <html>
        <br>
       <img src="ligne.jpg"/>
               </a>
              </p>
            <?php 
            }


          ?>
       <br><br><br>
   </section>
</body>
</html>

EDIT : Ajout des balises de code

l'adresse de mon site : https://tmc85.fr/form/Commentaires/index.php
merci pour votre réponse par avance

3 réponses

Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866
bonjour,
est-ce vraiment urile de mettre un script à l'intérieur d'un formulaire?
Ah je c'est pas je suis novice j'ai fais un copier coller en essayant de comprends ?
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > Jlavaidi
commence peut-être par faire fonctionner quelque chose de plus simple.
>
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021

ba disons que j'en est chier pour faire le code , je voulais juste rajouter un captcha de google pour le faire fonctionné et sa marche pas..
Messages postés
15962
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
9 juin 2021
866 > jlavaidi
c'est souvent préférable de faire marche arrière, de retourner à un code qui fonctionne.
de le montrer, et puis réfléchir à comment aller plus loin.
ok je vais suivre ton conseil
Messages postés
32933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juin 2021
3 553
Bonjour,

Pour poster ton code sur le forum, merci d'utiliser les balises de code.
Explications ( à lire ENTIEREMENT !! ) disponibles ici https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite, comme te l'a suggéré yg_be, il faut essayer de mettre le maximium de ton code php en dehors du html ( avant le html )
Il est aussi inutile d'inclure plusieurs fois la connexion à la bdd...

Voici quelques conseils à appliquer pour l'écriture de ton code :
https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code


Et comme tu fais du PDO, merci d'appliquer également ceci :
https://www.commentcamarche.net/faq/46512-pdo-gerer-les-erreurs


Reviens nous voir avec ton code modifié si ton souci persiste.

Messages postés
32933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 juin 2021
3 553
Au passage,
Je vois que tu n'as pas mis d' ID à ton formulaire
 <form method="POST" action="">


Alors qu'il essai d'en utiliser un dans le js
function onSubmit(token) {
     document.getElementById("demo-form").submit(); // document.getElementById('id_du_formulaire').submit();
   }