Captcha + champ caché = toujours des SPAM
Salut,
Je viens demander de l'aide car je n'arrive pas à éradiquer les SPAM qui remplissent mon formulaire de contact.
Comme vous le verrez, j'ai mis en place une fonction verifform() pour :
- vérifier que la réponse au captcha a été bien remplie (3+2=5)
- vérifier que le champ caché en display:none n'a pas été rempli (si celui-ci est rempli, c'est que c'est un robot et non un humain!).
Depuis, je reçois encore des formulaires SPAM, mais cette fois les champs sont complétements vides....
Que faire ?
Merci !
Voici la page du formulaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulaire</title>
<!--[if lte IE 7]>
<link type="text/css" rel="stylesheet" href="css/style-ie.css" />
<![endif]-->
<link href="css/style.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript" src="js/shadowbox.js"></script>
<script src="js/swfobject_modified.js" type="text/javascript"></script>
<script type='text/javascript' language='javascript' src='js/disclaimer.js'></script>
<script type="text/javascript">
</script>
<script type="text/javascript">
<! CI-DESSOUS LA FONCTION POUR VÉRIFIER LES CHAMPS DU FORMULAIRE -->
function verifform()
{
if(document.formulaire.nom.value == "")
{
alert("Veuillez entrer votre nom!");
document.formulaire.nom.focus();
return false;
}
if(document.formulaire.email.value == "")
{
alert("Veuillez entrer votre adresse électronique!");
document.formulaire.email.focus();
return false;
}
if(document.formulaire.email.value.indexOf('@') == -1)
{
alert("Ce n'est pas une adresse électronique valable!");
document.formulaire.email.focus();
return false;
}
if(document.formulaire.email2.value != "")
{
alert("Champ caché à ne pas remplir !");
document.formulaire.email2.focus();
return false;
}
if(document.formulaire.message.value == "")
{
alert("Veuillez entrer votre message!");
document.formulaire.nom.focus();
return false;
}
if(document.formulaire.captcha.value != 5)
{
alert("La réponse du captcha est erronée!");
document.formulaire.captcha.focus();
return false;
}
}
//-->
</script>
</head>
<body>
<div id="container">
<div id="musique">
<div id="lang">
<a href="en/"><img src="imgs/en.png" width="16" height="11" alt="vers la version en Anglais" /></a>
</div> <!--FIN DE LANGUE-->
<object id="FlashID3" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="175" height="45">
<param name="movie" value="swf/sound_player.swf" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<param name="swfversion" value="6.0.65.0" />
<!-- Cette balise <param> invite les utilisateurs de Flash Player en version 6.0 r65 et ultérieure à télécharger la version la plus récente de Flash Player. Supprimez-la si vous ne voulez pas que cette invite soit visible. -->
<param name="expressinstall" value="Scripts/expressInstall.swf" />
<!-- La balise <object> suivante est destinée aux navigateurs autres qu'IE. Supprimez-la d'IE à l'aide d'IECC. -->
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="swf/sound_player.swf" width="175" height="45">
<!--<![endif]-->
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<param name="swfversion" value="6.0.65.0" />
<param name="expressinstall" value="Scripts/expressInstall.swf" />
<!-- Le navigateur affichera le contenu alternatif suivant pour les utilisateurs d'un lecteur Flash de version 6.0 ou de versions plus anciennes. -->
<div>
<p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Obtenir le lecteur Adobe Flash" width="112" height="33" /></a></p>
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
<div id="menu">
<?php include('menu.php'); ?>
</div>
<!-- FIN MENU -->
<div id="contenu-contact">
<div id="global">
<div id="contact">
<p><strong>Pour nous contacter vous pouvez remplir ce formulaire:</strong></p>
<form name="formulaire" action="validation.php" method="post" class="formulaire" id="commentForm" onsubmit="return verifform()">
<div id="col1">
<div class="formulaire">
<label for="prenom">Prénom</label>
<input name="prenom" id="prenom" type="text" size="20" maxlength="20"/>
</div>
<div class="formulaire">
<label for="nom">Nom <span>*</span></label>
<input name="nom" id="nom" type="text" size="20" maxlength="20"/>
</div>
<div class="formulaire">
<label for="adresse">Adresse</label>
<input name="adresse" id="adresse" type="text" size="20" maxlength="50"/>
</div>
<div class="formulaire">
<label for="ville">Ville</label>
<input name="ville" id="ville" type="text" size="20" maxlength="50" />
</div>
<div class="formulaire">
<label for="phone">N° tel</label>
<input name="phone" id="phone" type="text" size="20" maxlength="20" />
</div>
<div class="formulaire">
<label for="email">Email <span>*</span></label>
<input name="email" id="email" type="text" size="20" maxlength="50" />
</div>
<! CI-DESSOUS CHAMP CACHE -->
<div style="display:none">
<label for="email2">Email verification<span>*</span></label>
<input id="email2" name="email2" type="text" />
</div>
</div> <!--FIN DE COLONNE 1 -->
<div id="col2">
<div class="formulaire">
<label for="message"> Message <span>*</span></label>
<textarea name="message" id="message" cols="20" rows="3"></textarea>
</div>
<div class="formulaire">
<label for="captcha">3+2 = ? <span>*</span></label>
<input name="captcha" id="captcha" type="text" size="5" maxlength="5" />
</div>
<input type="submit" name="submit" class="envoyer" id="envoyer" value="Envoyer" />
<a href="imgs/plan.jpg" rel="shadowbox">
<img src="imgs/arrow_plan.png" width="105" height="105" alt="Plan d'accès du Penthouse Club" id="plan" />
</a>
</div> <!--FIN DE COLONNE 2 -->
</form>
</div> <!--FIN DE CONTACT-->
</div>
<div id="flash">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="410" height="430" id="FlashID" title="Dance girl">
<param name="movie" value="swf/dance_girl2.swf" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<param name="swfversion" value="6.0.65.0" />
<!-- La balise <object> suivante est destinée aux navigateurs autres qu'IE. Supprimez-la d'IE à l'aide d'IECC. -->
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="swf/dance_girl2.swf" width="410" height="430">
<!--<![endif]-->
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<param name="swfversion" value="6.0.65.0" />
<param name="expressinstall" value="js/expressInstall.swf" />
<!-- Le navigateur affichera le contenu alternatif suivant pour les utilisateurs d'un lecteur Flash de version 6.0 ou de versions plus anciennes. -->
<div>
<img src="imgs/alt_flash2.png" width="410" height="430" alt="Dance girl" />
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
</div>
<!-- FIN CONTENU -->
<div id="footer">
<?php include('footer.php'); ?>
<div id="referencement">
<p class="testsec"></p>
</div>
</div><!-- FIN FOOTER -->
</div> <!-- FIN CONTAINER -->
<script type="text/javascript">
<!--
swfobject.registerObject("FlashID");
//-->
</script>
</body>
</html> |
Voici la page de validation du formulaire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Page validation formulaire</title>
<!--[if lte IE 7]>
<link type="text/css" rel="stylesheet" href="css/style-ie.css" />
<![endif]-->
<link href="css/style.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript" src="js/shadowbox.js"></script>
<script src="js/swfobject_modified.js" type="text/javascript"></script>
<script type="text/javascript">
Shadowbox.init({
});
</script>
</head>
<?php
$prenom = isset($_POST['prenom']) ? utf8_decode($_POST['prenom']) : '';
$nom = isset($_POST['nom']) ? utf8_decode($_POST['nom']) : '';
$adresse = isset($_POST['adresse']) ? utf8_decode($_POST['adresse']) : '';
$ville = isset($_POST['ville']) ? utf8_decode($_POST['ville']) : '';
$phone = isset($_POST['phone']) ? utf8_decode($_POST['phone']) : '';
$email = isset($_POST['email']) ? utf8_decode($_POST['email']) : '';
$message = isset($_POST['message']) ? utf8_decode($_POST['message']) : '';
$today = date("d-m-y H:i:s");
// destinataires
$to = 'email@email.fr'; // E-MAIL DE DESTINATION DU FORMULAIRE //
// Sujet
$subject = 'Formulaire Contact';
// message
$message = '
<html>
<head>
<title>Un formulaire de contact a était rempli</title>
</head>
<body>
<h2>Informations du contact :</h2>
<p style="color:#F00">Message provenant du formulaire de contact</p>
<p>Date du message : '.$today.'</p>
<p>Prenom : '.$prenom.'</p>
<p>Nom : '.$nom.'</p>
<p>Adresse : '.$adresse.'</p>
<p>Ville : '.$ville.'</p>
<p>Phone : '.$phone.'</p>
<p>Email : '.$email.'</p>
<h2>Message : </h2>
<p>'.$message.'</p>
</body>
</html>
';
// En-tête Content-type
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// En-têtes additionnels
$headers .= 'From: '.$email.'' . "\r\n";
// Envoi
mail($to, $subject, $message, $headers);
?>
<body>
<div id="container">
<div id="musique">
<div id="lang">
<a href="en/"><img src="imgs/en.png" width="16" height="11" alt="vers la version en Anglais" /></a>
</div> <!--FIN DE LANGUE-->
</div>
<div id="menu">
<?php include('menu.php'); ?>
</div>
<!-- FIN MENU -->
<div id="contenu-contact">
<div id="global">
<div id="contact">
<img style="margin:75px 50px 25px;" src="imgs/validation_img.png" width="483" height="31" alt="votre message à bien été envoyé" />
</div> <!--FIN DE CONTACT-->
</div>
<div id="flash">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="410" height="430" id="FlashID" title="Dance girl">
<param name="movie" value="swf/dance_girl2.swf" />
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<param name="swfversion" value="6.0.65.0" />
<!-- La balise <object> suivante est destinée aux navigateurs autres qu'IE. Supprimez-la d'IE à l'aide d'IECC. -->
<!--[if !IE]>-->
<object type="application/x-shockwave-flash" data="swf/dance_girl2.swf" width="410" height="430">
<!--<![endif]-->
<param name="quality" value="high" />
<param name="wmode" value="transparent" />
<param name="swfversion" value="6.0.65.0" />
<param name="expressinstall" value="js/expressInstall.swf" />
<!-- Le navigateur affichera le contenu alternatif suivant pour les utilisateurs d'un lecteur Flash de version 6.0 ou de versions plus anciennes. -->
<div>
<img src="imgs/alt_flash2.png" width="410" height="430" alt="Dance girl" />
</div>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
</div>
</div>
<!-- FIN CONTENU -->
<div id="footer">
<?php include('footer.php'); ?>
<div id="referencement">
<p class="testsec"></p>
</div>
</div><!-- FIN FOOTER -->
</div> <!-- FIN CONTAINER -->
<script type="text/javascript">
<!--
swfobject.registerObject("FlashID");
//-->
</script>
</body>
</html> |