<?Php
/*******************************************************************************
* Bu sinif forumlarinizda kullanabilmeniz icin guvenlik resmi olusturur.
* Sinfin Calisabilmesi icin sisteminizde GD2 Library kurulu olması gerekmektedir.
*
* $_SESSION['GuvenlikNo'] olarak session a olusturdugumuz kodu atiyoruz forumlarinizda bu session kullanarak koda ulasabilirsiniz.
* Proje Adı : CRECAPTCHA
* Yazan : Zafer Karaca
* zkaraca@hotmail.com
*******************************************************************************/
class GuvenlikResmi{
// Arka plan resimlerinin bulundugu klasor
var $ArkaPlanResimKlasoru = "images";
// Kullanacagimiz fonlarin oldugu klasor
var $FontKlasoru = "fonts";
//olusturacagimiz guvenlik numrasinin uzunluk degeri
var $KarakterUzunlugu = 8;
// fontlarimizin buyukluk degeri
var $FontBoyutu = 20;
private function GuvenlikNumarasi()
{
$_SESSION['GuvenlikNo']=$this->Karakter;
}
// Guvenlik resimi icin numara olusturuyoruz
private function KarakterKod()
{
for ($i = 0; $i < $this->KarakterUzunlugu; $i++)
{
$this->Karakter .= chr(rand(0,30)+60);
}
}
// Arka plan icin resim seciyoruz resimler disaridan array olarak gelecek
public function ArkaPlanResmi($x)
{
$this->BgDizi = explode(",",$x);
$this->SecilenArkaPlan = $this->ArkaPlanResimKlasoru."/".$this->BgDizi[rand(0,count($this->BgDizi)-1)];
}
// Kullanmak istedigimiz fontlari seciyoruz
public function FontListesi($x)
{
$this->FontDizisi = explode(",",$x);
$this->SecilenFont = $this->FontKlasoru."/".$this->FontDizisi[rand(0,count($this->FontDizisi)-1)];
}
/// Yeni resim Olusturuyoruz
private function ImgOlustur()
{
$this->resim = imagecreatefrompng($this->SecilenArkaPlan);
}
/// Fontumuz icin renk olusturuyoruz
private function FontRengiOlustur()
{
/// RGB renk kodlarini kullanarak font renklermizi seciyoruz
$this->FontRengi = imagecolorallocate($this->resim,255-rand(100,255),255-rand(100,255),255-rand(100,255));
}
/// Ekrana guvenlik resmimizi basiyoruz
public function Guvenlik()
{
$this->KarakterKod();
$this->GuvenlikNumarasi();
$this->ImgOlustur();
$this->FontRengiOlustur();
/// Yazı karaktermizin resmin uzerinde duracagi aci, font boyutu, font rengi ve resmimiz uzerinde yazacak olan kodu belirliyoruz
imagettftext($this->resim,$this->FontBoyutu,rand(-5,5),rand(5,5),rand(40,40),$this->FontRengi,$this->SecilenFont,$this->Karakter);
header("Content-type:image/jpeg");
imagejpeg($this->resim);
}
}
?>
|