Adapté captcha au formulaire de contact

Résolu
snip74 -  
 snip74 -
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

  1. snip74
     
    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
    0
  2. snip74
     
    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
    0
  3. Siluni
     
    Fait un
    echo $_SESSION['captcha'];
    juste après ton session_start(); pour voir si ta variable est bonne.
    -1