Adapté captcha au formulaire de contact

Résolu/Fermé
Utilisateur anonyme - 14 nov. 2010 à 22:51
 Utilisateur anonyme - 20 nov. 2010 à 11:37
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

Utilisateur anonyme
15 nov. 2010 à 00:19
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
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
Fait un
echo $_SESSION['captcha'];
juste après ton session_start(); pour voir si ta variable est bonne.
-1