Bonjour, j'ai un vieux site attaqué par du spam.
N'étant pas développeur de base, je voudrais mettre un captcha pour éviter les spams.
genre 4+4 = 8
Le formulaire se présente comme cela (extrait)
merci de votre aide

<div class="clearer"></div>
</div><div id="texteLong1-1" class="ideo_gdc_texteLong1">
<div class="blocTexte1">

<? if($ok_mail=="true"){ ?>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr><td><span class='txtform'>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'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr>
</table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><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'>Les champs marqué d'un * sont obligatoires</span></td></tr>

...........................
..........................
<tr><td align='right' width='30%'><input type="checkbox" name="lenomquetuveux" value="unevaleur" /> En cochant cette case, j'accepte la politique de confidentialite de ce site.

<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>
<? } ?>

</div>

<div class="clearer"></div>
</div>
</div>



<?php include("footer.php"); ?>
je veux juste copier un bout de code dans le formulaire contact.php
ca m'avance pas plus en fait
Bonjour,

Merci pour vos infos.
Je dois donc créer un fichier captcha.php?
Et un autre fichier pour la réponse?
j'ai un problème d'affichage :
http://www.menuiseriefarcy-14.fr/contact.php
j'ai crée le fichier captcha.php
J'ai copié ton code dans mon fichier contact.php
<
<tr><td align='right' width='30%'><span class='txtform'>Message* :</span></td><td><textarea style='width:360 <?if($errf_9==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_9' rows='6' cols='40'><?echo$f_9?></textarea></td></tr>
<tr><td align='right' width='30%'><input type="checkbox" name="lenomquetuveux" value="unevaleur" /> En cochant cette case, j'accepte la politique de confidentialite de ce site.

<br />Code de confirmation:<br />
<input name='VerifiCaptcha'  type='text' maxlength=5 size='20'>
<IMG src='captcha.php'>

<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>

<? } ?>

	</div>
	
	<div class="clearer"></div>
</div>
			</div>

<?PHP

$VerifiCaptcha = (isset($_POST['VerifiCaptcha'])) ? secur($_POST['VerifiCaptcha']) : "x";
$captcha = (isset($_SESSION['captcha'])) ? $_SESSION['captcha'] : 'xxx';
?>					
			
<?php include("footer.php"); ?>

Modifié par Dutel (24 Sep 2019 - 14:15)
Bonjour,

Jean-Pierre,
Merci pour le retour.
J'ai effacé le fichier captchatest.php et remis le nouveau code mais je peux toujours envoyé des mails sans blocage.
<?php
session_start();
header('Content-Type: image/png');
$largeur=80;
$hauteur=25;
$lignes=10;
$caracteres="ABCDEF123456789";
$image = imagecreatetruecolor($largeur, $hauteur);
imagefilledrectangle($image, 0, 0, $largeur, $hauteur, imagecolorallocate($image, 255, 255, 255));
function hexargb($hex) {
    return array("r"=>hexdec(substr($hex,0,2)),"g"=>hexdec(substr($hex,2,2)),"b"=>hexdec(substr($hex,4,2)));
}
for($i=0;$i<=$lignes;$i++){
    $rgb=hexargb(substr(str_shuffle("ABCDEF0123456789"),0,6));
    imageline($image,rand(1,$largeur-25),rand(1,$hauteur),rand(1,$largeur+25),rand(1,$hauteur),imagecolorallocate($image, $rgb['r'], $rgb['g'], $rgb['b']));
}
$code1=substr(str_shuffle($caracteres),0,4);
$_SESSION['captcha']=$code1;
$code="";
for($i=0;$i<=strlen($code1);$i++){
    $code .=substr($code1,$i,1)." ";
}
imagestring($image, 5, 10, 5, $code, imagecolorallocate($image, 0, 0, 0));
imagepng($image);
imagedestroy($image);
?>