Adapté captcha au formulaire de contact

Résolu
Bonjour,
j'arrive pas à fusioné le système de captchat au formulaire de contact.

<?php
session_start();
//On verifie si le formulaire a ete valide
if(isset($_POST['nom'], $_POST['captcha'], $_SESSION['captcha']))
{
        //On compare le code entre par lutilisateur avec celui de limage(qui avait ete stoque dans les sessions)
        if(strtolower($_POST['captcha'])==strtolower($_SESSION['captcha']))
        {
                unset($_SESSION['captcha']);
                echo '<strong style="color:#00bb00;">Le code que vous avez entré est le bon.</strong>';
                $form = false;
                //Ici, vous pouvez envoyer les donnes du formulaire
        }
        else
        {
                echo '<strong style="color:#bb0000;">Le code que vous avez entré est mauvais, veuillez réessayer.</strong>';
                $form = true;
        }
}
else
{
        $form = true;
}
//Si $form vaut true, le formulaire sera affiche
if($form)
{
?>
<form action="formulaire.php" method="post">
Votre nom:<input type="text" name="nom" value="<?php if(isset($_POST['nom'])){echo htmlentities($_POST['nom']);} ?>" /><br />
Veuillez recopier le code cidessous:<input type="text" name="captcha" /><br />
<img src="captcha.php" alt="CAPTCHA" /><br />
<input type="submit" value="Envoyer" />
</form>
<?php
}
?>


Formulaire Contact ou je veut mettre le captcha :
<?php
if(isset($_POST['email']) and isset($_POST['sujet']) and isset($_POST['message']))
{
        $destinataire = 'votre_email@example.com';
        $email = htmlentities($_POST['email']);
        if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_'{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace('&amp;','&',$email)))
        {
                $sujet = 'Contact: '.stripslashes($_POST['sujet']);
                $message = stripslashes($_POST['message']);
                $headers = "From: <".$email.">\n";
                $headers .= "Reply-To: ".$email."\n";
                $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
                if(mail($destinataire,$sujet,$message,$headers))
                {
                        echo "<strong>Votre message a bien été envoyé.</strong>";
                }
                else
                {
                        echo "<strong style=\"color:#ff0000;\">Une erreur c'est produite lors de l'envois du message.</strong>";
                }
        }
        else
        {
                echo "<strong style=\"color:#ff0000;\">L'email que vous avez entré est invalide.</strong>";
        }
}
else
{
?>
<form action="" method="post">
        <fieldset>
        <legend>Formulaire de contact</legend>
        <label for="email" style="display:inline-block;width:100px;"><strong>Votre Email:</strong></label> <input type="text" name="email" id="email" /><br />
        <label for="sujet" style="display:inline-block;width:100px;"><strong>Sujet:</strong></label> <input type="text" name="sujet" id="sujet" /><br />
        <label for="message"><strong>Message:</strong></label><br />
        <textarea cols="70" rows="4" name="message" id="message"></textarea><br />
        <input type="submit" value="Envoyer" />
    </fieldset>
</form>
<?php
}
?>


Cordialement Stéphane

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonsoir Siluni,

    en faite je teste d'Adapté le captcha au formulaire se qui n'est pas le cas dans mes deux code
    1er = Captcha et
    2eme = formulaire

    donc 2 code différent a mettre en 1 seule code :)
    les deux codes séparer fonctionne mais j'arrive pas à les mettre dans le même code :)

    Cordialement Stéphane
    1. Bonjour all
      j'ai réussi voila la solution

      <?php 
      //On verifie si le formulaire a ete valide 
      if(isset($_POST['psd'], $_POST['email'], $_POST['sujet'], $_POST['message'], $_POST['captcha'], $_SESSION['captcha'])) 
      { 
              //On compare le code entre par lutilisateur avec celui de limage(qui avait ete stoque dans les sessions) 
              if(strtolower($_POST['captcha'])==strtolower($_SESSION['captcha'])) 
              { 
                      unset($_SESSION['captcha']); 
                      echo '<b style="color:#00bb00;">Le code que vous avez entré est le bon.</b><br/>'; 
                      $form = false; 
                      //Ici, vous pouvez envoyer les donnes du formulaire 
              } 
              else 
              { 
                      echo '<b style="color:#bb0000;">Le code que vous avez entré est mauvais, veuillez réessayer.</b><br/>'; 
                      $form = true; 
              } 
      } 
      else 
      { 
              $form = true; 
      } 
      //Si $form vaut true, le formulaire sera affiche 
      if($form) 
      { 
      if(empty($psd) OR empty($email) OR empty($sujet) OR empty($_POST['message']) OR empty($_SESSION['captcha'])) 
          { 
       echo '<b style="color:#00bb00;">Aucun champ ne peut rester vide.</b>'; 
          } 
      } 
      else 
      { 
      $destinataire  = 'votremail@live.fr'; 
      $psd = stripslashes($_POST['psd']); 
      $email = stripslashes($_POST['email']); 
      $sujet  = "Le sujet : "; 
      $sujet .= stripslashes($_POST['sujet']); 
      $form  = "Pseudo : $psd \r\n"; 
      $form .= "Email : $email \r\n"; 
      $form .= "$sujet \r\n\n"; 
      $form .= "---Message--- \r\n\n".stripslashes($_POST['message'])."\r\n\n"; 
      $form .= "---Contact information--- \r\n\n"; 
      $form .= "Son IP : ".$_SERVER["REMOTE_ADDR"]."\r\n"; 
      $form .= "Page : ".$_SERVER["HTTP_REFERER"]; 
      if  (mail($destinataire , $sujet, $form,"From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")){ 
      echo "<p align='center'><b>Bonjour ! </p><br/> 
      <p>Votre message a bien été envoyé.</p><br/> 
      <p>Nous vous remercions vivement de l'intérêt que vous portez à notre site de <strong>rencontre gratuit</strong>.</p><br/> 
      <p>Merci de votre participation et à bientôt sur le <strong>chat</strong>.</p> 
      <p>L'équipe Tchat-Fusion</p><br/><br/> 
      <p align='right'><a href='index.php'>Page Accueil</a> </p>"; 
      }else{ 
      echo "Une erreur est survenue lors de l'envoi de votre message ! <br/>Veuillez recommencer ou signaler ce probleme aux admins de Tchat-Fusion. <br/>Nos excuses pour le désagrément. <br/><br/>L'équipe de Tchat-fusion"; 
      } 
      } 
      ?>


      Cordialement Stéphane
      1. Fait un
        echo $_SESSION['captcha'];
        juste après ton session_start(); pour voir si ta variable est bonne.