Файл: captcha.php
Строк: 99
<?php
include_once 'sys/inc/start.php';
include_once 'sys/inc/sess.php';
include_once 'sys/inc/home.php';
include_once 'sys/inc/settings.php';
include_once 'sys/inc/db_connect.php';
include_once 'sys/inc/ipua.php';
include_once 'sys/inc/fnc.php';
include_once 'sys/inc/MultiWave.php';
$show_all=true; // показ для всех, в противном случае невозможно будет пройти регистрацию
include_once 'sys/inc/user.php';
include_once 'sys/inc/captcha.php';
$_SESSION['captcha'] = '';
# Конфигурация картинки
$setfon = 0; #режим случайного фона
$width = 70; # Ширина картинки
$height = 30; # Высота картинки
$font_size = 10; # Размер шрифта
$let_amount = 3; # Кол-во символов на картинке
$fon_let_amount = 0; # Кол-во символов на фоне
$path_fonts = H.'sys/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);
if ($setfon == 1)
$fon = imagecolorallocate($src, mt_rand(0,250), mt_rand(0,250), mt_rand(0,250));
else
$fon = imagecolorallocate($src, 227, 227, 227);
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, 11);
$y = (($height * 2) / 3) + rand(0, 5);
$cod[] = $letter;
imagettftext($src, $size, rand(0, 45), $x, $y, $color, $font, $letter);
}
# Сохранение кода в сессию
$_SESSION['captcha'] = implode('', $cod);
# Вывод изображения
header('Content-type: image/png');
imagegif($src);
/*
// генерируем код
for ($i=0;$i<5;$i++) {$_SESSION['captcha'].= mt_rand(0, 9);}
$captcha = new captcha($_SESSION['captcha']);
$captcha->create(); //создание изображения
$captcha->MultiWave(); // искажение изображения
$captcha->colorize(); // придаем цвет, если возможно
$captcha->output(); // вывод изображения
?>*/