Forum > PHP > Installation d'un captcha sur un formulaire de contact

Installation d'un captcha sur un formulaire de contact

Membre
# Le 21/04/2013 à 13h42
Bonjour,

j'ai installé le système de captcha dont vous avez fait le tutoriel sur votre site (cf. le lien suivant http://blog.infowebmaster.fr/771-utiliser-recaptcha) sur une page de contact.
J'ai bien réussi à installer le captcha qui s'affiche bien, mais je n'arrive pas à "le rendre utile". En effet, je peux envoyer un mail même sans avoir à entrer de code dans le système captcha.

Pouvez vous m'aider svp, je suis vraiment nul en pho et je fais juste ceci pour le site de mon père qui s'y connait encore moins que moi...


Voici le code de la page en question, désolé si il y a beaucoup d'erreurs qui vous frisent...:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>titrecachélorsducopiercoller</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<!--/////////////////////////////////// HEADER ////////////////////////// -->
<div id="header"></div>
<!--/////////////////////////////////// MENU ////////////////////////// -->
<div id="menu">
<ul>
<li><a href="index.html" title="Accueil">Accueil</a></li>
<li><a href="galerie.html" title="Galerie">Galerie</a></li>
<li><a href="forex.html" title="Le Forex">Le Forex</a></li>
<li><a href="atelier.html" title="L'atelier">A l'atelier</a></li>
<li><a href="signaletique.html" title="Signalétiques">Signalétique</a></li>
<li><a href="/livredor" title="livre d'or">Livre d'Or</a></li>
<li><a href="bannieres.php" title="banniéres">Banniéres</a></li>
<li><a href="partenaires.php" title="Partenaires">Partenaires</a></li>
<li><a href="formulaire.php" title="Contact">Contact</a></li>

</ul>
</div>
<!--/////////////////////////////////// CORPS ////////////////////////// -->
<div id="corps">





<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous n’êtes pas certain de ce que vous faites !
if(isset($_POST['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö -]", "", $f_1)));
$f_2=strip_tags(trim($f_2));
$f_3=strip_tags(trim($f_3));
// Verification des champs
if(strlen($f_1)<2){
$erreur.="<li><span class='txterror'>&nbsp;Le champ &laquo; Nom/Pseudo &raquo; est vide ou incomplet.</span>";
$errf_1=1;
}
if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>&nbsp;Le champ &laquo; Texte à envoyer &raquo; est vide ou incomplet.</span>";
$errf_4=1;
}
if($erreur==""){
// Création du message
$titre="Message de votre site";
$tete="From:Site@creaminiatures.free.frn";
$corps.="Nom/Pseudo : ".$f_1."n";
$corps.="E-mail / Msn : ".$f_2."n";
$corps.="Url de votre site : ".$f_3."n";
$corps.="Texte à envoyer : ".$f_4."n";
if(mail("EMAILCACHEPOURLESBESOINSDUFORUM", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>&nbsp;Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>






<br><br><br><br>

<TITLE>E-Mail Formulaire</TITLE>
<center>

<? if($ok_mail=="true"){ ?>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr><td><span class='txtform'>&nbsp;&nbsp;Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><span class='txtform'>&nbsp;&nbsp;Nous allons y donner suite dans les meilleurs délais.<br>&nbsp;&nbsp;A bientôt.</span></td></tr>
</table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
<table border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='black'><b>&nbsp;ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?>
<tr><td colspan='2'><span class='txterror'>&nbsp;&nbsp;Les champs marqué d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>&nbsp;&nbsp;Nom/Pseudo* :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>&nbsp;&nbsp;E-mail / Msn :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>&nbsp;&nbsp;Url de votre site :</span></td><td><input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?if($submit){echo stripslashes($f_3);}else{print("http://");}?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>&nbsp;&nbsp;Texte à envoyer* :</span></td><td><textarea style='width:360 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' rows='6' cols='40'><?echo$f_4?></textarea></td></tr>
<?php
require_once('recaptchalib.php'); // Vérifier que l'URL relative correspond à l'emplacement du fichier (adapter si nécessaire)
$publickey = "6LeWOOASAAAAAA-Bj9b1e1cBU2X12Fa2oFkuX7Lb"; // Utiliser la clé que vous avez eu lors de l'inscription sur recaptcha.net
echo recaptcha_get_html($publickey); // Affiche le captcha
?>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>

<?php
require_once('recaptchalib.php'); // Vérifier que l'URL relative correspond à l'emplacement du fichier (adapter si nécessaire)
$publickey = "6LeWOOASAAAAAA-Bj9b1e1cBU2X12Fa2oFkuX7Lb"; // Utiliser la clé que vous avez eu lors de l'inscription sur recaptcha.net
echo recaptcha_get_html($publickey); // Affiche le captcha
?>

<?php

$privatekey = "6LeWOOASAAAAAP8XTpxXrr1f_m3QBf0HHpSvdF2S"; // Utiliser la clé privée qui est donnée sur votre compte recaptcha.net
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);

if (!$resp->is_valid) { // Test si le captcha a bien été rempli
// Si le captcha n'est pas valide
echo 'Oups, le captcha antispam n'est pas valide. Veuillez recommencer';
}
else{
// Si le captcha est valide
// Ici, utiliser votre code PHP pour traiter le formulaire
}
?>
</table>
</form>
<? } ?>


</center>
<br><br><br><br><br><br><br><br>

<center><img src="/img/tracteur.gif"/></center>


<br></br><br></br>
<p class="right"> <a href="#" title="">Haut de page</a></p>
<div id="corps_bas"></div>
</div>

<!--/////////////////////////////////// FOOTER ////////////////////////// -->
<p id="footer">:: Copyright © titrecachélorsducopiercoller Toute reproduction interdite, même partielle ::</p>
<!-- Vous devez laisser le Copyright -->
<!-- Nom du Codeur : Varouj -->
<!-- Pour toutes Informations, veuillez contactez Varouj -->
</body>
</html>










En vous remerciant par avance,

Cordialement,

Rudy
Membre
# Le 19/11/2015 à 11h23
Membre
# Le 06/01/2016 à 11h08