Файл: sys/inc/captcha.php
Строк: 60
<?php
function captcha_show()
{
return "
<script>
function captcha_reload()
{
document.getElementById('captcha').src = '/captcha.php?' + Math.random();
}
</script>
<a href='javascript:captcha_reload();'>
<img id='captcha' src='/captcha.php' alt='captcha' /></a>
";
}
class captcha
{
public $str;
public $x = 100;
public $y = 40;
public $img;
public $gif = false;
public $png = false;
public $jpg = false;
public function captcha($str)
{
if (!function_exists('gd_info')) {
header('Location: /style/errors/gd_err.gif');
exit;
}
if (imagetypes() & IMG_PNG) {
$this->png = true;
}
if (imagetypes() & IMG_GIF) {
$this->gif = true;
}
if (imagetypes() & IMG_JPG) {
$this->jpg = true;
}
$this->str = $str;
$this->img = imagecreatetruecolor($this->x, $this->y);
imagefill($this->img, 0, 0, imagecolorallocate($this->img, 255, 255, 255));
}
public function create()
{
for ($i = 0; $i < 5; $i++) {
$n = $this->str{$i};
if ($this->png) {
$num[$n] = imagecreatefrompng(H . '/style/captcha/' . $n . '.png');
} elseif ($this->gif) {
$num[$n] = imagecreatefromgif(H . '/style/captcha/' . $n . '.gif');
} elseif ($this->jpg) {
$num[$n] = imagecreatefromjpeg(H . '/style/captcha/' . $n . '.jpg');
}
imagecopy($this->img, $num[$n], $i*15 + 10, 8, 0, 0, 15, 20);
}
}
public function MultiWave()
{
include_once H . 'sys/inc/MultiWave.php';
$this->img = MultiWave($this->img);
}
public function colorize($value=90)
{
if (function_exists('imagefilter')) {
imagefilter($this->img, IMG_FILTER_COLORIZE, mt_rand(0, $value), mt_rand(0, $value), mt_rand(0, $value));
}
}
public function output($q=50)
{
@ob_end_clean();
if ($this->jpg) {
header("Content-type: image/jpeg");
imagejpeg($this->img, null, $q);
} elseif ($this->png) {
header("Content-type: image/png");
imagepng($this->img);
} elseif ($this->gif) {
header("Content-type: image/gif");
imagegif($this->img);
}
exit;
}
}