Bonjour,

J'ai écris un code anti-bots qui fonctionne avec EasyPHP. J'ai migré vers Wamp (1.6.6.) et le code ne fonctionnait plus.

Lors de l'exécution du script sous Wamp aucune erreur n'est retournée, cependant l'image n'est pas crée.

Je crée l'image dans le formulaire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<tr>
	<td><p>Retaper le code de l'image ci-dessous<br /><img src="img_verif.php" alt="image aleatoire" /></p></td>
	<td><p><input type="text" name="image" size="20" /> *</p></td>
</tr>
Je vérifie que le code est correct dans le formulaire_send :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$image = strtoupper(htmlentities($_POST['image']));
if($image == $_SESSION['nbr_aleatoire']) // si on a bien recopié le code de l'image
{
[...]
Voici le code de la page (img_verif.php) qui crée l'image :

Code : 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
38
39
40
41
42
43
44
45
<?
header ("Content-type: image/png"); // on crée img png
session_start();
 
$liste = "ABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
$code = ''; // On créé une variable $code
$nbr_aleatoire = NULL;
while(strlen($nbr_aleatoire) != 5) {
        $nbr_aleatoire .= $liste[rand(0,37)]; 
}
 
$_SESSION['nbr_aleatoire'] = $nbr_aleatoire;
 
$image = imagecreate(88,31);
 
// premiere couleur --> fond de l'image
$blanc = imagecolorallocate($image, 255, 255, 255);
$noir = imagecolorallocate($image, 0, 0, 0);
$gris = imagecolorallocate($image, 200, 200, 200);
$gris_fonce = imagecolorallocate($image, 87, 87, 87);
 
// On charge d'abord les images
$source = imagecreatefrompng("img_verif.png"); //le logo est la source
$destination = $image; // destination
 
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
 
// On veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
$destination_x = $largeur_destination - $largeur_source;
$destination_y =  $hauteur_destination - $hauteur_source;
 
// On met le logo (source) dans l'image de destination (la photo)
imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 30);
 
imagestring($image, 4, 23, 8, "$nbr_aleatoire", $noir); // imagestring($image, $police(taille 1-5), $x, $y, $texte_a_ecrire, $couleur);
 
ImageRectangle ($image, 0, 0, 87, 30, $gris_fonce); //ImageRectangle ($image, $x1, $y1, $x2, $y2, $couleur);
 
imagepng($image); // affichage de l'image
 
?>
Pour information, j'ai bien activé l'extension php_gd2 sous Wamp.

D'avance merci pour vos réponses.