Hemen hemen her sitede bulunan resim doğrulama yani güvenlik kodlarına rastlarız.Bunlar üyelik formalarında,sipariş formalarında whois sorgulama gibi yerlerde karşımıza çıkar.Bu doğrulamayı aşağıdaki gibi yapabilirsiniz.
Form Sayfası :index.php
<!-- Tarayıcı ön belleğinde tutulmaması için no-cache --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//TR" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="TR" lang="tr"> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="-1" /> <title>wmturk.net - Resim doğrulama uygulamasına ait demo</title> <form method="post" action="sonuc.php"> Dogrulama Kodu: <img src="img.php" height="25" width="75" />Doğrulama Kodunu Giriniz: <input size="6" maxlength="6" name="kod" type="text" /> <input value="Test et" type="submit" /> </form> </body> </html>
Resim oluşturma sayfası :img.php
<? session_start(); /* Olusturulan kodu diger sayfalara tasiyabilmemiz icin oturum baslatiyoruz. 0-999 araliginda bir sayi olusturup bunu md5 ile sifreliyoruz. */ $md5yap=md5(rand(0,9999)); //md5 ile sifrelenen sayimizin uzunlugu 32 karakter olacaktir. Biz 6 karakterli alacagiz. $dogrulamakodu = strtoupper(substr($md5yap, 8, 6)); //Dogrulama icin kullanicak kodumuzu acilan oturuma kaydediyoruz. $_SESSION["dogrulamakodu"] = $dogrulamakodu; //Resim boyutlari belirleniyor $en = 75; $boy = 25; //Uzerinde calisacagimiz resim olusturuluyor. $image = ImageCreate($en, $boy); //Beyaz,Siyah ve Kirmizi renkler olusturuyoruz. Rakamlar renkleri ifade etmektedir. $beyaz = ImageColorAllocate($image, 255, 255, 255); $siyah = ImageColorAllocate($image, 0, 0, 0); $kirmizi = ImageColorAllocate($image, 242, 0, 0); //Arka plani beyaz yapiyoruz ImageFill($image, 0, 0, $beyaz); //Olusturulan dogrulama kodunu resime yaziyoruz. ImageString($image, 6, 9, 5, $_SESSION["dogrulamakodu"], $siyah); //Gorunumu biraz karistirmak icin cizgilerle gorunumu zorlastiriyoruz. //Dilerseniz imageline() satirlarini kaldirarak cizgileri yok edebilirsiniz. imageline($image, 0, 2, $en, 2, $kirmizi); imageline($image, 0, 25, $boy, 0, $kirmizi); imageline($image, $en, $boy, 40, 0, $kirmizi); imageline($image, 0, 23, $en, 23, $kirmizi); // Tarayiciya dosyamizin tipini yolluyoruz. header("Content-Type: image/jpeg"); //Resmimizi Jpg formatinda basiyoruz. ImageJpeg($image); //Bir kereye mahsus kullanacagimiz icin siliyoruz. ImageDestroy($image); exit(); ?>
Sonuç Sayfası : sonuc.php
<? session_start(); // Eger form doldurulmussa if( isset($_POST['kod']) ){ if( strtoupper($_POST['kod']) == $_SESSION['dogrulamakodu'] ){ echo ' <h4>Tebrikler, Doğru kodu girdiniz: <code>'.$_POST['kod'].'</code></h4>'; }else{ echo '<h4><code>'.$_POST['kod'].'</code>Hatali giris, tekrar deneyiniz. '.$_SESSION['dogrulamakodu'].'</h4>'; } echo '<a href="index.php">Tekrar _fcksavedurl=""index.php">Tekrar" _fcksavedurl=""index.php">Tekrar" dene?</a>'; } else { ?> <a href="index.php">Sadece post verileri ile calisan bir sayfadir. Giris sayfasina donebilirsiniz.?</a> <?}?>
Hiç yorum yok:
Yorum Gönder