Имя

Сообщение


25.01.2008   exebosser

to blaze

<?
class captch
{
//класс генерации картинки
//Copyright: Скахин Алексей (http://epo.excode.ru)

function captch()
{
$this->execute();
}

function bground($image)
{
//шум на фоне картинки
//цикл задает количество шума на капче
for($i=0;$i<=100;$i++)
{
$color=ImageColorAllocate($image,rand(0,100),rand(0,100),rand(0,100));
if($i%10==0)
{
ImageLine($image, rand(-10,150),
rand(-10,150), rand(-10,150), rand(-10,150), $color);
}
imagesetpixel($image,rand(0,150),rand(0,35),$color);
}
}

function rand_ttf()
{
// выбираем шрифт рэндомом
// шрифты необходимо закидывать в папку inc .
// Других действии не требуется.
$dir_rec=dir('../inc/');
while($entry=$dir_rec->read())
{
if(strtolower(substr($entry,strlen($entry)-4,4))=='.ttf')
{
$ttf[]=$entry;
}
}
$dir_rec->close();
$num=array_rand($ttf,1);
return $ttf[$num];
}

function rand_word($image,$x)
{
$word=array('a','b','c','d','e','f','g','h','g','k','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z',
'2','3','4','5','6','7','8','9','0',
'#','$','%','@','?');
$num=array_rand($word,1);
$ttf=$this->rand_ttf();
$word=$word[$num];
//выводим букву
imagefttext($image,15,rand(-20,30),10+$x+rand(-5,5),
23+rand(-5,5),10,'../inc/'.$ttf,$word);
return $word;
}

function execute()
{
Header("Content-Type: image/gif");
$image = ImageCreate(150, 35);
$fon=ImagecolorAllocate($image,rand(200,255),
rand(200,255),rand(200,255));
session_start();
ImageFill($image, 1, 1, $fon);
$this->bground($image);
for($i=0;$i<7;$i++)
{
$word[]=$this->rand_word($image,$i*20);
}
$_SESSION['captcha']=$word;

ImageGIF($image);
ImageDestroy($image);
exit();
}
}
$captch=new captch;
?>




Вопрос был задан на этой странице. Но если Вам это не интересно, могу предложить Вам почитать про какой выбрать дорогой php хостинг сайтов PHP+MySQL

 
  (c) Janda.ru