Файл: utils/captcha.php
Строк: 60
<?php
$width = 130; //Ширина изображения
$height = 80; //Высота изображения
$font_size = 16; //Размер шрифта
$let_amount = 4; //Количество символов, которые нужно набрать
$fon_let_amount = 15; //Количество символов, которые находятся на фоне
$path_fonts = '../design/fonts/'; //Путь к шрифтам
$letters = array('0','2','3','4','5','6','7','9');
$colors = array('10','30','50','70','90','110','130','150','170','190','210');
$src = imagecreatetruecolor($width,$height);
$fon = imagecolorallocate($src,255,255,255);
imagefill($src, 0, 0, $fon);
$fonts = array();
$dir=opendir($path_fonts);
while($fontName = readdir($dir)) {
if($fontName != "." && $fontName != "..") {
$fonts[] = $fontName;
}
}
closedir($dir);
for($i=0; $i<$fon_let_amount; $i++) {
$color = imagecolorallocatealpha($src,rand(0,255),rand(0,255),rand(0,255),100);
$font = $path_fonts.$fonts[rand(0,sizeof($fonts)-1)];
$letter = $letters[rand(0,sizeof($letters)-1)];
$size = rand($font_size-2,$font_size+2);
imagettftext($src, $size, rand(0, 45), rand($width * 0.1, $width - $width * 0.1), rand($height * 0.2, $height), $color, $font, $letter);
}
for($i=0; $i<$let_amount; $i++) {
$color = imagecolorallocatealpha($src,$colors[rand(0,sizeof($colors)-1)],$colors[rand(0,sizeof($colors)-1)],$colors[rand(0,sizeof($colors)-1)],rand(20,40));
$font = $path_fonts.$fonts[rand(0,sizeof($fonts)-1)];
$letter = $letters[rand(0,sizeof($letters)-1)];
$size = rand($font_size*2.1-2,$font_size*2.1+2);
$x = ($i+1)*$font_size + rand(4,7);
$y = (($height*2)/3) + rand(0,5);
$cod[] = $letter;
imagettftext($src,$size,rand(0,15),$x,$y,$color,$font,$letter);
}
// запуск сессий
session_name('sid');
session_start();
$_SESSION['code'] = implode('', $cod);
header ("Content-type: image/gif");
imagegif($src);
?>