code captcha ( antispam - image )?

WRInaute impliqué
bonjour,
dans un formulaire je veut ajouter un image pour controler le formulaire

comme exemple suivant :

yyy.GIF


comment en fait ça ?


merci d'avance
 
WRInaute impliqué
merci spout et xTrade et UsagiYojimbo

j'ai trouve la solution :

* fichier generateurcode.php :

Code:
<?php
session_start();

srand(); //initialisation du générateur mais plus obligatoire > PHP 4.2

// Définition du content-type
header("Content-type: image/png");

$lettres = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');

$code = $lettres[rand(0,25)].rand(100,1000); //si on met que des chiffres, il faut mettre (string)
$longueurcode = strlen($code);

$_SESSION['code'] = $code;

$largeur = $longueurcode * 25;
$hauteur =  40;

$image = imagecreatetruecolor($largeur, $hauteur);

$couleurfond = imagecolorallocate($image, rand(150,255),rand(150,255),rand(150,255));

imagefilledrectangle($image, 0, 0, $largeur, $hauteur, $couleurfond);

$fontchiffre = array('1.ttf','2.ttf');
$fontlettre = array('3.ttf');

imagettftext($image, rand(15,30), rand(-45,15), 10, 35, imagecolorallocate($image, rand(10,100) ,rand(10,100),rand(10,100)), $fontlettre[0], $code[0]);

for ($i = 1; $i < $longueurcode; $i++) {
  	$largeurx = 20 * $i + 30;
    $hauteury = rand(25,40);
	imagettftext($image, rand(27,32), rand(0,45), $largeurx,$hauteury, imagecolorallocate($image, rand(10,100) ,rand(10,100),rand(10,100)), $fontchiffre[rand(0,1)], $code[$i]);
//	imagestring($image, rand(1,15), $largeurx,$hauteury, $codegenere[$i], imagecolorallocate($image, rand(100,255) ,rand(100,255),rand(100,255)) );
}

imagepng($image);
imagedestroy($image);

?>

* fichier test.html ( avec possibilite changer l'image)

Code:
<html>
<head>
	<title>Captcha</title>
	<script type="text/javascript">
	function imag()
	{
	window.document.image.src='generateurcode.php';
	}
	</script> 
</head>

<body>
<a href="#" onclick="imag()">changer l'image</a>
<form method="post" action="verif.php">
	<img src="generateurcode.php" alt="" name="image"/>
<br>
<input type="text" name="cd"><br><br><input type="submit" value="envoyer">
</form>
</body>

<html>

* fichier verif.php pour verifier le code inserer

Code:
<?php
session_start();

$txt=$_POST["cd"];

if ($_SESSION['code']=="$txt")

echo "bien code correct";

else

echo "erreur dans le code";

?>
 
Discussions similaires
Haut