battles/sec1.php

86 lines
2.7 KiB
PHP

<?PHP
// Настройки
$SECURITY_IMAGE_TYPE = 'GIF'; // Возможные форматы: GIF, JPEG, PNG
$SECURITY_WIDTH = 130; // Ширина изображения
$SECURITY_HEIGHT = 30; // Высота изображения
$SECURITY_NUM_GENSIGN = 4; // Количество символов, которые нужно набрать
$EXT = strtoupper($_GET['ext']);
if($EXT == 'GIF' || $EXT == 'JPEG' || $EXT == 'PNG') $SECURITY_IMAGE_TYPE = $EXT;
if(is_numeric($_GET['width']) && $_GET['width']>100 && $_GET['width']<500) $SECURITY_WIDTH = $_GET['width'];
if(is_numeric($_GET['height']) && $_GET['height']>100 && $_GET['height']<500) $SECURITY_HEIGHT = $_GET['height'];
if(is_numeric($_GET['qty']) && $_GET['qty']>2 && $_GET['qty']<10) $SECURITY_NUM_GENSIGN = $_GET['qty'];
// Ядро
//session_register('securityCode');
$SECURITY_FONT_SIZE = intval($SECURITY_HEIGHT/(($SECURITY_HEIGHT/$SECURITY_WIDTH)*7));
$SECURITY_NUM_SIGN = intval(($SECURITY_WIDTH*$SECURITY_HEIGHT)/150);
$CODE = array();
$LETTERS = array('0','1','2','3','4','5','6','7','8','9');
$FIGURES = array('50','70','90','110','130','150','170','190','210');
// Создаем полотно
$src = imagecreatetruecolor($SECURITY_WIDTH,$SECURITY_HEIGHT);
// Заливаем фон
$fon = imagecolorallocate($src,255,255,255);
imagefill($src,0,0,$fon);
// Если папка шрифтов пуста
for($i = 0; $i<$SECURITY_NUM_GENSIGN; $i++)
{
// Ориентир
$h = 1;
// Рисуем
$color = imagecolorallocatealpha($src,$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],$FIGURES[rand(0,sizeof($FIGURES)-1)],rand(10,30));
$letter = $LETTERS[rand(0,sizeof($LETTERS)-1)];
$x = (empty($x)) ? $SECURITY_WIDTH*0.1 : $x + ($SECURITY_WIDTH*0.8)/$SECURITY_NUM_GENSIGN+rand(0,$SECURITY_WIDTH*0.01);
$y = ($h == rand(1,2)) ? (($SECURITY_HEIGHT*1)/4) + rand(0,$SECURITY_HEIGHT*0.1) : (($SECURITY_HEIGHT*1)/4) - rand(0,$SECURITY_HEIGHT*0.1);
// Запоминаем
$CODE[] = $letter;
if($h == rand(0,10)) $letter = strtoupper($letter);
// Пишем
imagestring($src,9,$x,$y,$letter,$color);
}
// Получаем код
$_SESSION['securityCode'] = implode('',$CODE);
// Печать
if($SECURITY_IMAGE_TYPE == 'PNG')
{
header ("Content-type: image/png");
imagepng($src);
}
elseif($SECURITY_IMAGE_TYPE == 'JPEG')
{
header ("Content-type: image/jpeg");
imagejpeg($src);
}
else
{
header ("Content-type: image/gif");
imagegif($src);
}
imagedestroy($src);
?>