MultiServis.Net //PHP El Kitabı

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>

Hata Yapilari'nin Ele Alinmasi - BOLUM 3 Yazar: Serkan Tarih: 01/03/02

Programi'nizi zorlu sartlar altinda test etmek

Bir programi test etmek demek o programa klasik olmayan verileri(Harfler,semboller veya bunlarin kombinasyonlari) girip nasil calistigina bakmak demektir.

Gercek hayatta her zaman icin bu tip verileri programiniza yukleyip deneme yapacak ilginc insanlarla karsilasacaksiniz.Eger zorlu sartlar altinda programiniz gerilime dayanamaz ise,iste o zaman hacklenmis olacaksiniz :)

Kullanicinin programinizi kirmak neler yapabilcegini dusunun, girdigi bilgilerin gecersiz veya hicbir bilgi girmedigini varsayin. Programiniz boyle bir durumda ne yapacak bunu biliyormu?

Ornegin kullanicinin girecegi "Yas" "Posta Kodu" gibi degerler belirli bir kaliba oturmalidir.E-mail adresleri her zaman icin bir (@) ampersat isareti icermelidir...

Ilk olarak kullanicin girecegi numerik degerler icin test islemlerimizi nasil yapacagimizi ogrenelim,

- Beklenen Degerler Eger programda belirli bir araliktaki verilerin islenmesini istediyseniz,ornegin sinirlari 1-10 arasinda verdiyseniz, 2 den 9 a kadar olan sayilari programda deneyin ve nasil calistigina bakin...

- Sinir DegerlerEger programda 1-10 araligini verdiyseniz mutlaka bu sinir degerleri en az bir kere test etmelisiniz.Bu sinir degerler ile programiniz istediginiz gibi anlasiyormu?Veya 0 ve 11 degerleri icin ne gibi bir sonuc donduruyor?

- Sinirlarin Disinda Degerler Ornegin sinirlarimiz 1-10 araligi ise ,bu verileri girerek programi test edin : - 5 , 0 , 999 , - 1E5 , "kopek" , 5.5 , 5,5 ,"true", "false" ,(empty),+4,4+4 , 5/0 , 9.99, 9.9999 , 9,99999999 , 003 , #5/12/59# , "include("dosya")

  Kullaniclar gibi dusunmek

  Programinizi yazarken, verileri internet uzerinde yer alan sayfalardan alacaginizi unutmamalisiniz.Bu durumda gerek acemi gerek uzman bir suru kullanici sayfalariniza bir takim veriler girip onlari programinizin islemesi icin bekleyeceklerdir..."Bu yazdigim kodlari kimler kirabilir?"Eger aklinizdan bir an olsun bu soruyu cikarirsaniz,programiniz uzman kullanicilar tarafiindan kirilacaktir.tum tedbirlerinizi uzman kullanicilara gore almalisiniz !

  Genel olarak yapilan en buyuk hata, kullanicilarin formlara veri giri sirasinda bir alani unutmalari olmaktadir.Bu durumu en iyi sekilde ele almak icin simdi size bir kod parcasi gosterecegiz,

  $BosAlanlar = 0;
  if (!$Form_Alani_Bir) $BosAlanlar++;
  if (!$Form_Alani_Iki) $BosAlanlar++;
  if (!$Form_Alani_Uc) $BosAlanlar++;
  if (!$Form_Alani_Dort) $BosAlanlar++;
  if (!$Form_Alani_Bes) $BosAlanlar++;

  if ($BosAlanlar > 0) {

  Formu_Goster (); //Formu tekrar gosteriyoruz.Bir veya daha fazla alan unutuldu...

  } else {

  Formu_Isleme_Koy (); //Formdan gelen verileri isleme koyuyoruz.Butun alanlar dolduruldu...

  }

  Eger kullandiginiz veritabaninda duzenli bilgiler gormek istiyorsaniz bu konuda biraz sanssiz oldugunuzu soylemek zorundayiz...Internet kullanicilari genelde girdikleri verinin formatina bakmadan islenmesi icin gonderirler.Bu nedenle siz veritabaninda "Istanbul" gormek isterken "isatanbul" "ITANBUL" gibi ne oldugu anlasilmayan kelimelerle karsilasirsiniz...Bu konu icin tabii ki ornekler cogaltilabilir...

  Kullaniclari belirli bir kalipta veri girmeye zorlarken cok dikkatli olmalisiniz.Eger hassas davranmaz iseniz kullaniclariniz sitenize gelmekten vazgececeklerdir.Kendinizin yapmayacagi bir islemi kullanicilariniza yaptirmaya calismayiniz...

  Veritabaninda tamamen temiz bilgiler saklanmasi gerekmiyorsa mumkun oldugunca cok bu sekilde yapilan zorlamalardan kacininiz...

  Hasta Ruhlu Kullanicilar'dan Korunmak

  Bir siteyi ele gecirmeye(hacklemek) calismak internetin ne yazik ki bir parcasidir.Bizler tasarladigimiz programlarin internet'te yer alan ara yuzu icin mutlaka bazi guvenlik tedbirlerini almak durumundayiz.

  Programcilik hayatinizin basinda sizden tabii ki kredi karti bilgilerinin saklandigi bir veri tabani icin guvenli erisim algoritmalari yazmaniz istenmeyecektir.Bizler bu bolumde size HTML formlari'nin alinacak onlemlerle daha guvenli bir hale nasil getirilcegini gosterecegiz.

  $Degisken = HTMLSpecialChars ("<B.>Bu yazi kalin goruntulenmez</B.>");

  "HTMLSpecialChars " bu fonksiyon ile butun HTML taglari normal bir text sekline cevrilir.

  Kullanicilardan Verilerin Alinmasi
  Iste simdi sira "Regular Expressions" konusunun anlatilmasina geldi.Bu bolumde sizlere kullanicidan alacaginiz verileri kontrol ederken kullanacginiz " Regular Expressions" tanimlamalarini PHP ile nasil kullanabilceginizi anlatacagiz.

  Sanilanin aksine bu patern'ler yanlizca PHP'ye ozgu degildir.Bu yazilim kurallarini PHP de oldugu kadar, ayni sekilde Perl, Python programlama dilleri veya UNIX uygulamalari olan sed ve egrep icinde de kullanabilirsiniz.

- "Regular Expressions" kisaca tanimlamak istersek bir "karekter grubunda" ,verilen bir grup "alt karekter" grubunu bir islemi yapmak icin aramaktir.Bu islem o alt-karekter grubu bulundugunda silmek,degistirmek vb olabilir...

  Yazi dizimizin bir sonraki bolumunde "Regular Expressions" konusu detayli olarak butun detaylari ile anlatilacaktir...

  Kendinize iyi bakin

  Her turlu gorus ve dusuncenizi sceylani@usa.net adresine gonderebilirsiniz.

  Saygilar
  Serkan Hadi Ceylani
  serkan@turk-php.com

<<= Önceki Sayfa | PHP Ana Sayfa | Sonraki Sayfa =>>