Anasayfa > Hazır Kodlar > PHP > Resimler kullanilarak form guvenliginin saglanmasi:

Resimler kullanilarak form guvenliginin saglanmasi:





Bu grafik ornegi icin PHP4 ve GD kutuphanesinin bilgisayarinizda yuklu
olmasi gereklidir.Ayrica oturum ile bir degiskeni belirleyip ikinci bir
sayfadan o degiskenin degerine erisecegiz.Boylece oturum degiskenini nasil
kullandigimizi da gormus olacaksiniz...

Programa ilk olarak baslik fonksiyonu ile basliyoruz.Boylece tarayici
kendisine bir grafik gonderilecegini anliyor ve ona gore hareket
ediyor.Tarayicilar normal olarak hic bir baslik belirlenmediginde butun
icerige "duz yazi" gibi davranirlar...

PHP:

  1.   
  2.   <?php 
  3.   
  4.   /* Icerik icin veri/dosya tipi baslik icinde belirleniyor */ 
  5.   
  6.   Header("Content-Type: image/png");

Biz bu ornek icin PNG dosyasi ile calisacagiz.Sizde yukarida png gecen yere
"jpeg" yazarak dosya tipini degistirebilirsiniz.


Ardindan oturumu baslatiyoruz :

/* Bir oturum baslat */

session_start();


Bir degisken yaratip onu oturum degiskeni olarak tanimliyoruz.Oturum
degiskenleri session_register() fonksiyonu ile tayin ediliyor ve $ isareti
almadan degisken ismini parametre olarak aliyorlar.Fonksiyon cagrilirken tek
tirnak ile yazilmalari gereklidir...


/* Degiskeni hazirla */

$sifre = "";


/* Degiskeni oturum degiskeni olarak kayit et */

session_register('sifre');


/* Icerigi hazirlamaya basla */

echo "";

echo "";

Simdi sira grafigin yaratilmasina geldi.Bu grafik icin ImageCreate ()
fonksiyonu kullaniliyor.$resim degiskeni kullanilarak fonksiyonun sonucunda
donen deger bir degiskende depolaniyor.Fonksiyon iki tane parametre
(bu fonksiyon icin butun parametreler sayi veri tipinde olmali)
aliyor.Resim icin ilk parametre genislik ikkinci parametre ise yuksekligi
tayin ediyor...

/* Resmi yarat.Ilk rakam genislik ikincisi yukseklik */

$resim = ImageCreate(200, 40);


Resim icine iki tane renk yerlestiriyoruz.Birincisi beyaz ikincisi
siyah.Fonksiyon 4 parametre aliyor : resim degiskeni,RGB olarak
kirmizi,yesil,mavi renk degerleri,


/* Iki tane rengi tanimlamak icin iki ayri degisken yaratiyoruz */

$beyaz = ImageColorAllocate($resim, 255, 255, 255);

$siyah = ImageColorAllocate($resim, 0, 0, 0);



/* Rastgele ifade ureteci */

/* Rastgele bir ifade uretmek icin besleme yaratiyoruz */

srand((double)microtime()*1000000);


/* md5 fonksiyonu 32 haneli bir ifade uretiyor */

$ifade = md5(rand(0,9999));



/* Bu 32 haneden 17'inci haneden sonraki 5 hanesi seciliyor */

$sifre = substr($ifade, 17, 5);

Resmin arka planini siyah olarak ayarliyoruz.Boylece beyaz font uzerinde
gorunurlugu artiyor,


/* Resmi siyah ile doldur */

ImageFill($resim, 0, 0, $siyah);



ImageFill () Fonksiyonu 4 parametre aliyor : resim degiskeni,resmin
baslangic koordinatlari (0,0) resim icin sol ust kose 0,0 ve sag alt kose
200 X 40 bu durumda, ve renk degeri (siyah).

Simdi de bu resmin uzerine hazirladigimiz raslantisal 5 haneli ifadeyi
yazdiralim:


/* Uzerine beyaz olacak sekilde ifadeyi yaz */

ImageString($resim, 4, 96, 19, $sifre, $beyaz);

ImageString () bu fonksiyon 6 parametre aliyor : resim degiskeni,1 ile 5
arasinda degisen ve GD kutuphanesi ile hazir gelen fontlari temsil eden
ikinci parametre,Koordinatlar X ve Y olarak,resim uzerine yazilacak
ifade,resim uzerine yazilacak ifade icin renk degeri,


/* Resim verify1.png olarak kayit ediliyor */


ImagePNG($resim, "verify1.png");



Resim, programin icinde bulundugu klasor icinde "verify1.png" olarak kayit
ediliyor.

ImagePNG () fonksiyonu iki paramatre almakatadir.Birincisi resim degiskeni
ikincisi ise resmin kayit edilecegi dosya ismidir.


/* Resim icin ayrilan hafiza alanini bosalt */

ImageDestroy($resim);


Ile resim icin ayrilan hazifa bolgeleri temizleniyor.

PHP:

  1.   
  2.   /* Form hazirla */
  3.   
  4.   echo "Sifre ifadesi : $sifre";
  5.   
  6.   echo "<BR>";
  7.   
  8.   echo "<img src="verify1.png">";
  9.   
  10.   echo "<br><br>";
  11.   
  12.   echo "Resimde gordugunuz 5 haneli ifadeyi kutuya yaziniz.
  13.   
  14.   (buyuk/kucuk harf ayrimina dikkat ediniz!)";
  15.   
  16.   echo " <form action="grafik_kontrol_form.php" method=post>";
  17.   
  18.   echo "<input name="kontrol" type="text" value="">";
  19.   
  20.   echo "<input type="submit" value="Gonder">";
  21.   
  22.   echo "</form>";
  23.   
  24.   echo "</body>";
  25.   
  26.   echo "</html>";
  27.   
  28.   
  29.   ?>

Ardindan form hazirlaniyor ve kullanicinin resmin uzerindeki ifadeyi
girmesi isteniyor.Form bir baska sayfaya istek yapiyor ve oturum icindeki
$sifre degiskeni ile kullanicinin girdigi $kontrol degiskeni
karsilastiriliyor.

Program toplam iki dosyadan olusuyor: grafik.php ve
grafik_kontrol_form.php.Bu iki dosyanin da icerigi asagida yer
almaktadir...

PHP:

  1.   
  2.   <?php 
  3.   
  4.   /* Icerik icin Baslik */ 
  5.   
  6.   Header("Content-Type: image/png");
  7.   
  8.   
  9.   /* Bir oturum baslat */ 
  10.   
  11.   session_start();
  12.   
  13.   
  14.   /* Degiskeni hazirla */ 
  15.   
  16.   $sifre = "";
  17.   
  18.   
  19.   /* Degiskeni oturum degiskeni olarak kayit et */ 
  20.   
  21.   session_register('sifre');
  22.   
  23.   
  24.   /* Icerigi hazirlamaya basla */ 
  25.   
  26.   echo "<html><head><title>Onaylama</title></head>";
  27.   
  28.   echo "<body>";
  29.   
  30.   
  31.   /* Resmi yarat.Ilk rakam genislik ikincisi yukseklik */ 
  32.   
  33.   $resim = ImageCreate(200, 40);
  34.   
  35.   
  36.   /* Iki tane rengi tanimlamak icin iki ayri degisken yaratiyoruz */ 
  37.   
  38.   $beyaz = ImageColorAllocate($resim, 255, 255, 255);
  39.   
  40.   $siyah = ImageColorAllocate($resim, 0, 0, 0);
  41.   
  42.   
  43.   /* Rastgele ifade ureteci */ 
  44.   
  45.   /* Rastgele bir ifade uretmek icin besleme yaratiyoruz */ 
  46.   
  47.   srand((double)microtime()*1000000);
  48.   
  49.   
  50.   /* md5 fonksiyonu 32 haneli bir ifade uretiyor */ 
  51.   
  52.   $ifade = md5(rand(0,9999));
  53.   
  54.   
  55.   
  56.   /* Bu 32 haneden 17'inci haneden sonraki 5 hanesi seciliyor */ 
  57.   
  58.   $sifre = substr($ifade, 17, 5);
  59.   
  60.   
  61.   
  62.   
  63.   /* Resmi siyah ile doldur */ 
  64.   
  65.   ImageFill($resim, 0, 0, $siyah);
  66.   
  67.   
  68.   
  69.   /* Uzerine beyaz olacak sekilde ifadeyi yaz */ 
  70.   
  71.   ImageString($resim, 4, 96, 19, $sifre, $beyaz);
  72.   
  73.   
  74.   /* Resim verify1.png olarak kayit ediliyor */ 
  75.   
  76.   
  77.   ImagePNG($resim, "verify1.png");
  78.   
  79.   
  80.   /* Resim icin ayrilan hafiza alanini bosalt */ 
  81.   
  82.   ImageDestroy($resim);
  83.   
  84.   
  85.   /* Form hazirla */ 
  86.   
  87.   echo "Sifre ifadesi : $sifre";
  88.   
  89.   echo "<BR>";
  90.   
  91.   echo "<img src="verify1.png">";
  92.   
  93.   echo "<br><br>";
  94.   
  95.   echo "Resimde gordugunuz 5 haneli ifadeyi kutuya yaziniz.
  96.   
  97.   (buyuk/kucuk harf ayrimina dikkat ediniz!)";
  98.   
  99.   echo " <form action="grafik_kontrol_form.php" method=post>";
  100.   
  101.   echo "<input name="kontrol" type="text" value="">";
  102.   
  103.   echo "<input type="submit" value="Gonder">";
  104.   
  105.   echo "</form>";
  106.   
  107.   echo "</body>";
  108.   
  109.   echo "</html>";
  110.   
  111.   
  112.   ?>


Yukaridaki dosyayi grafik.php olarak kayit ediniz.

PHP:

  1.   
  2.   <?php 
  3.   
  4.   /* Oturumu baslat */ 
  5.   
  6.   session_start();
  7.   
  8.   
  9.   /* Formda "kontrol" yazi alanina girilen verinin basindaki ve sonundaki
  10.   
  11.   -olabilecek- beyaz bosluklari ortadan kaldir.
  12.   
  13.   */ 
  14.   
  15.   
  16.   $kontrol = trim($kontrol);
  17.   
  18.   
  19.   /* Karar ifadesi...
  20.   
  21.   /* $sifre degiskenini oturuma kayit ettigimiz icin halen degerini koruyor ve
  22.   
  23.   /* dogrudan erisilebiliyor.
  24.   
  25.   */ 
  26.   
  27.   
  28.   if ($sifre == $kontrol){ 
  29.   
  30.   echo "Kontrol Sifreniz Dogru! ";
  31.   
  32.   } else { 
  33.   
  34.   echo "Lutfen geriye donup tekrar deneyiniz!";
  35.   
  36.   } 
  37.   
  38.   ?>


Yukaridaki kod parcasini grafik_kontrol_form.php olarak kayit ediniz.


Makalenin orjinali yabanci bir PHP sitesinden alinmistir,

Bu makale hakkında ek bilgi eklemek için buraya tıklayınız

Bu makalenin yazar yada kaynağını bildirmek için tıklayınız.

Digg this Post! Add Post to del.icio.us Bookmark Post in Technorati Furl this Post!
Eklenme tarihi: 3-2-2006  Okunma: 2343

Bu Makaleye Verilen Puan:    Bu makaleye puan verilmemiş.
Bu Makaleye Puan Ver  

Bölüm Başlık Kullanıcı Yorumları


Bu makaleye yorum gönderilmemiş, ilk yorumu sen gönder !
Reklam Netinternet
Bazı hakları saklıdır: İçeriğin editör ve yazarlarımız tarafından oluşturulan kısımları ve site tasarımının hakkı saklıdır.  Bu sayfa en iyi 1280x1024 ve 1024x768 çözünürlükte izlenir.
Powered by BilgiPortal v2.2
Emlak Yorumlar Müzik estetik