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
| <?php
session_start();
function nombre()
{
$chaine = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$nb_caract = 6;
$pass = "";
for($u = 1; $u <= $nb_caract; $u++) {
$nb = strlen($chaine);
$nb = mt_rand(0,($nb-1));
$pass.=$chaine[$nb];
}
return $pass;
}
function image($mot)
{
$size = 20;
$marge = 30;
$font = './face.OTF';
$box = imagettfbbox($size, 0, $font, $mot);
$largeur = $box[2] - $box[0];
$hauteur = $box[1] - $box[7];
$largeur_lettre = round($largeur/strlen($mot));
$img = imagecreate($largeur+$marge, $hauteur+$marge);
$blanc = imagecolorallocate($img, 255, 255, 255);
$noir = imagecolorallocate($img, 0, 0, 0);
for($i = 0; $i < strlen($mot);++$i)
{
$l = $mot[$i];
$angle = mt_rand(-10,10);
imagettftext($img,$size,$angle,($i*$largeur_lettre)+$marge, $hauteur+mt_rand(0,$marge/2),$noir, $font, $l);
}
imagepng($img);
imagedestroy($img);
}
function captcha()
{
$mot = nombre();
$_SESSION['capcha'] = $mot;
image($mot);
}
header("Content-type: image/png");
captcha();
?> |
Partager