View file utils/captcha.php

File size: 1.95Kb
<?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);

?>