69 lines
2.9 KiB
PHP
69 lines
2.9 KiB
PHP
<?php
|
||
@session_start(['cookie_lifetime' => 43200,'cookie_secure' => true,'cookie_httponly' => true]);
|
||
//if(isset($_SESSION['REMOTE_ADDR']) && $_SESSION['REMOTE_ADDR'] != $_SERVER['REMOTE_ADDR']) unset($_SESSION["USER_ID"]); //Делаемся не авторизованным если зашли с другого ip адреса
|
||
if (isset($_REQUEST['id'])) $id = $_REQUEST['id']; else $id = '';
|
||
|
||
$width = 115; //Ширина изображения
|
||
$height = 40; //Высота изображения
|
||
$font_size = 14; //Размер шрифта
|
||
$let_amount = 5; //Количество символов, которые нужно набрать
|
||
$fon_let_amount = 40; //Количество символов, которые находятся на фоне
|
||
$path_fonts = getcwd().'/fonts/'; //Путь к шрифтам
|
||
|
||
//$letters = array('a','b','c','d','e','f','g','h','j','k','m','n','p','q','r','s','t','u','v','w','x','y','z','2','3','4','5','6','7','9');
|
||
$letters = array('0','1','2','3','4','5','6','7','8','9');
|
||
//$colors = array('100','200','150','170','190','210','190','160','170','190','210'); //для тёмного стиля
|
||
$colors = array('50','100','75','85','95','105','90','80','85','95','105'); //Для светлого стиля
|
||
|
||
$src = imagecreatetruecolor($width,$height);
|
||
//$fon = imagecolorallocate($src,58,58,58); //Для тёмного стиля
|
||
$fon = imagecolorallocate($src,241,241,241); //Для светлого стиля
|
||
imagefill($src,0,0,$fon);
|
||
|
||
$fonts = array();
|
||
$dir=opendir($path_fonts);
|
||
while($fontName = readdir($dir))
|
||
{
|
||
if($fontName != "." && $fontName != ".." && pathinfo($fontName, PATHINFO_EXTENSION)=='ttf')
|
||
{
|
||
$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((int)($width*0.1),(int)($width-$width*0.1)),
|
||
rand((int)($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((int)($font_size*2.1-2),(int)($font_size*2.1+2));
|
||
$x = (int)(($i+0.9)*$font_size + rand(4,7));
|
||
$y = (int)((($height*2.3)/3) + rand(0,5));
|
||
$cod[] = $letter;
|
||
imagettftext($src,$size,rand(0,15),$x,$y,$color,$font,$letter);
|
||
}
|
||
|
||
$_SESSION['secpic'.$id] = implode('',$cod);
|
||
|
||
header ("Content-type: image/gif");
|
||
imagegif($src);
|
||
|