rendered paste body session_start();
/**
* Génère un code au hasard de 6 caractères
*/
$passe = '';
$caracteres = 'abcdefpruvx368';
$cnt = strlen($caracteres)-1;
for($i = 0; $i < 6; $i++)
{
$char = mt_rand(0,$cnt);
$passe .= $caracteres[$char];
}
/**
* Stocke ce code dans une session
*/
$_SESSION['code']=$passe;
/**
* On génère ensuite l'image associée au code
*/
$image=imagecreate(210,70) OR exit;
header ('Content-type: image/gif');
/**
* Prépare le fond de l'image
*/
$fond=imagecolorallocate($image,255,255,255);
/**
* Dessine le cadrillage
*/
$i=0;
$couleur_ligne=imagecolorallocate($image,230,230,230);
while($i<70)
{
imageline($image,0,$i,210,$i,$couleur_ligne);
$i+=5;
}
$i=0;
while($i<210)
{
imageline($image,$i,0,$i,70,$couleur_ligne);
$i+=5;
}
/**
* Dessine les caractères sur l'image
*/
$nb_caracteres=strlen($_SESSION['code']); //7 caractères par défaut
$i=0;
$pos_x=-5;
while($i<$nb_caracteres)
{
/**
* Génération d'une couleur aléatoire dont les tons n'approchent pas le blanc
* afin de rester visible
*/
$couleur1=mt_rand(0,220);
$couleur2=mt_rand(0,220);
$couleur3=mt_rand(0,220);
$pos_x += mt_rand(25,35); //position horizontale du caractère
$pos_y = mt_rand(35,50); //position verticale du caractère
$taille = mt_rand(35, 50); //Taille de la police
$angle = mt_rand(5,70); //Inclinaison
$couleur = imagecolorallocate($image,$couleur1,$couleur2,$couleur3);
imagettftext($image, $taille , $angle , $pos_x, $pos_y, $couleur, './core/JOURNAL.TTF', $_SESSION['code'][$i]);
$i++;
}
imagefilter($image, IMG_FILTER_MEAN_REMOVAL);
$matrice = array(array(-1.1,2.0,3.0), array(-2.0,3.0,-1.0), array(-1.0 ,3.9, 3.0));
imageconvolution($image, $matrice, 10, 0);
imagegif($image);