Bonjour à toutes et à tous,

J'ai crée un système de captcha dans un formulaire d'inscription, en couplant la validation de ce formulaire avec du JSON et de l'Ajax.
Par contre le code que je saisi dans le champ du captcha est identique à celui de l'image mais la valeur du champ bien que prise en compte car je récupère la valeur dans mon $_POST n'est pas prise en compte avec le code présent sur l'image.

#image.php (la création de l'image captcha)
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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
 
<?php
	session_start(); // on démarre une session pour récupérer les variables de session	
	// C'est le fichier dynamique image.php et non button.png qui est appelé pour afficher l'image,
	// on envoie donc un en-tête HTTP au navigateur via header() pour qu'il considère
	// que image.php est une image de type PNG.	
	header("Content-type: image/png"); 
	//header('Cache-control: no-cache');
	$length = 6; // on veut un code ayant 6 caractères
	$chars = strtoupper(substr(str_shuffle('23456789abcdefghjklmnpqrstuvwxyz'), 0, $length)); // les caractères prêtant à confusion ont été enlevés
	$code = ''; // pour stocker le code que l'on va obtenir
 
	// On veut obtenir un nombre ayant $length fois un caractère de $chars pris au hasard
	for($i=0;$i<$length;$i++) {
		// on concatène chaque caractères les uns à la suite des autres en utilisant le .
		$code .= $chars{ mt_rand( 0, strlen($chars) - 1 ) };
		//$code = md5($code);	// si on crypte le code les caractères prêtant à confusion seront présents
		$code = substr($code, 0, $length); // on le récupère sur $length caractères		
	} // fin boucle for()
	//echo $code // pour le test
	$_SESSION['code'] = $code; // pour récupérer le code dans la page index.php	
	//$string = $_GET['text']; // pour récupérer la valeur passée au script via les paramètres URL
	// Creation de l'image button.png située dans le répertoire img
	$image = imagecreatefrompng('img/button.png');	
	// On précise la couleur du texte de l'image
	$texte_image = imagecolorallocate($image, 0, 48, 128);
	// On utilise notre police personnalisée
	$font = 'polices/ARLRDBD.ttf';
	// On génère un nombre aléatoire pour une rotation entre -15 and 15 degrés
	$rotate = rand(-5, 5);
	// On dessine un texte avec une police TrueType
	imagettftext($image, 16, $rotate, 11, 31, $texte_image, $font, $code);
	 // .. et on envoie notre image PNG au navigateur.
	imagepng($image);
	// L'image ayant été envoyée, on libère toute la mémoire qui lui est associée via imagedestroy()
	imagedestroy($image);		
?>


Merci d'avance.
Transact.