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
|
<?php
session_start();
//
/*
* Genere plusieurs nombres aleatoires suivant la variable $nombre
*/
$nombre = 8;
$generate = '';
for ($i=0;$i<$nombre;$i++) {
$generate .= rand(0,9);
}
/*
* Genere une image png avec les nombres précedemments géneré
*/
$largeur = strlen($generate) * 10;
$hauteur = 25;
$image = imagecreate($largeur, $hauteur);
$blanc = imagecolorallocate($image, 255, 255, 255);
$noir = imagecolorallocate($image, 0, 0, 0);
$milieu = ($hauteur / 2) -8;
$couleur_verte = '';
$couleur = array(
'bleu' => imagecolorallocate($image,0,0,255),//bleu
'rouge' => imagecolorallocate($image,255,0,0),
'vert' => imagecolorallocate($image,0,255,0)//vert
);
for ($i=0;$i < strlen($generate);$i++) {
$texte = $generate[$i];
$couleur_aleatoire = $couleur[array_rand($couleur)];
imagestring($image, 8, strlen($generate) /2 + $i * 9 , $milieu,$texte,$couleur_aleatoire); // on ecrit nos nombre
/*
fonction qui "déconne" genere une erreur de type
Warning: array_key_exists() expects parameter 2 to be array, string given in /var/www/sententiae/fonctions/captcha.php on line 36
*/
if (array_key_exists('vert',$couleur_aleatoire)) {
$couleur_verte = $generate[$i];
}
}
$couleur_verte = $_SESSION['captcha'];
imageline($image, 2,mt_rand(2,$hauteur), $largeur-2, mt_rand(2,$hauteur), $noir); // on rajoute une barre
imagerectangle($image, 1, 1, $largeur -1, $hauteur - 1, $noir); // et une petite bordure toute belle
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
?> |
Partager