Yazar:Abdullah Tekin Eklenme: 30.09.2006 Okunma: 3735
Puan: 3.0 Seviyesi: Başlangıç
<?
// dosyamızın .png olarak algılanabilmesi için header
header("content-type: image/png");
session_start();
// hafızada boş bir image oluşturalım
$im = imagecreate(144, 32);
// resmimizin arka plan rengi için beyaz, yazı rengi için siyah renklerini oluşturalım;
$byz = imagecolorallocate($im, 255, 255, 255);
$syh = imagecolorallocate($im, 0, 0, 0);
// resmimizi beyaza boyayalım. (default siyah oluşur)
imagefill($im, 0, 0, $byz);
// resmimizin arkasına desen yapıyoruz.
// bunun için 20 adet boyutları ve rengi rastele elips ekleyelim
for($i=0;$i<20;$i++) {
$e_x = rand(0,144);
$e_y = rand(0,32);
$e_genislik = rand(3, 100);
$e_yukseklik = rand(3, 100);
$e_renk = imagecolorallocate($im, rand(200,255), rand(200,255), rand(200,255));
imagefilledellipse($im, $e_x, $e_y, $e_genislik, $e_yukseklik, $e_renk);
}
// güvenlik için session_id yi hash edip ilk 5 karekterini alalım
$kod = substr(md5(sha1(rand(0,999999999))), 0, 5);
// kodu session'a kaydedelim
$_SESSION["kod"] = $kod;
// bu beş karekteri resmin içine yazalım.
// yazarken bu dosyanın yanına koyacağımız
// True Type bir fontu kullanabiliriz.
// Burdaki 16 = font boyutu, 10 = açısı, 30 = x ve 22 = y
imagettftext($im, 16, 10, 30 , 32, $syh, 'arial.ttf', $kod);
// oluşan image i gösterelim
imagepng($im);
//hafızadaki resmi silebiliriz
imagedestroy($im);
?>
DOĞRULAMA İÇİNSE ŞU KODU KULLANABİLİRSİNİZ
<?php
session_start(); // oturum başlamamışsa, başlatıyoruz
$kontrol = $_POST["guvenlikkodu"]; // ziyaretçinin giriş yaptığı formdaki alan
if ($_SESSION["kod"] == $kontrol){
//giriş yapılmışsa işlemi yap
} else {
// kod doğru değilse işlemi yap
}?>
Hatırlatma
Eğer linux sunucuda kullanacaksanız arial.ttf adındaki font dosyasını, güvenlik kodunu yarattığınız dosyanın bulunduğu klasör içine kopyalayın.
UYARI: SANALKURS'ta yer alan materyaller ile ilgili her türlü sorumluluk hazırlayan veya gönderene aittir. SANALKURS'ta yer alan hiçbir makale, yazarından izinsiz başka bir yerde yayınlanamaz. SANALKURS kullanıcıları ve üyeleri, üçüncü kişilerin telif hakkı sahibi bulunduğu her türlü fikri eser, fotoğraf, resim vb. materyal ve ürünleri kullanamazlar. SANALKURS kullanıcı ve yazarlarının, üçüncü kişilerin telif hakkı sahibi olduğu yazı, resim vb. ürünleri kullanması durumunda, her türlü hukuki ve cezai sorumluluk kendilerine aittir. Söz konusu haksız kullanım nedeniyle SANALKURS .NET'in hiçbir hukuki sorumluluğu bulunmamakta olup, haksız kullanım nedeniyle SANALKURS.NET'in üçüncü kişilere ödemek zorunda kalabileceği her türlü tazminat ve/veya adli/idari para cezaları ilgili Sanalkurs kullanıcılarından rücu edilecektir.