PHP'de Gelen Veri Kontrolü

Merhaba,

Formlardan gelen verileri, php’nin bazı metodları ile süzgeçleyebilir-kontrol edebiliriz. Bu sayede daha güvenli form işlemleri sürdürebiliriz.

1) trim() fonksiyonu

trim() fonksiyonu, parametresiz kullanımda stringler üzerinde whitespace var ise, bunları tespit eder ve devre dışı bırakır. trim() fonksiyonu str ve charlist olmak üzere 2 parametre alabilir. Whitespace içerisine neler girer peki?

Kullanımı şu şekildedir ;

Bildiğiniz üzere burada ilk parametre zorunlu, ikinci parametre ise opsiyoneldir. İkinci parametre Php 4.1.0 sürümünde opsiyonel olarak eklenmiştir.

İkinci parametre olmadan kullanıldığı taktirde, aşağıda listelenmiş olan karakterleri string içerisinden çıkartır.

  • ” ” (ASCII32 (0x20)), an ordinary space.
  • “\t” (ASCII9 (0x09)), a tab.
  • “\n” (ASCII10 (0x0A)), a new line (line feed).
  • “\r” (ASCII13 (0x0D)), a carriage return.
  • “\0” (ASCII0 (0x00)), the NUL-byte.
  • “\x0B” (ASCII11 (0x0B)), a vertical tab.

trim() fonksiyonunun parametreli kullanımı ise şu şekildedir ;

Bu örnekte, text içerisinden “=” karakteri temizlenecektir.

trim’e benzeyen ltrim() ve rtrim() fonksiyonları ise aynı işlemi soldan veya sağdan olmak üzere işletir. Başlarında ki “l” ve “r” harfi left-right ikilisini sembolize ediyor.

2) addslashes() fonksiyonu

Veritabanı işlemlerinde tek ve çift tırnakların sıkıntı yarattığını bilmeyen yoktur sanırım (bknz: Sql injection)

addslashes() fonksiyonu tek ve çift tırnak karakterleri için kaçış işlemi uygular.

Kullanımı ise ;

Kullanıcı tek veya çift tırnak içeren bir veriyi göndermiş ise, başına bir tane “/” ekleyerek, kaçış işlemi gerçekleştirir.

3) stripslashes() fonksiyonu

addslashes() ile kaçış işlemi gerçekleştirilmiş olan stringi bastırmak istediğimizde, “/” karakterlerini temizlemek için kullanırız.

Oldukça basit kullanımı olan bir fonksiyon olduğu için, kısaca geçiyorum.

4) htmlspecialchars() fonksiyonu

Özel html karakterlerini, öz değerlerlerine döndürür.

Örneğin ;

  • & (ampersand) => &
  • ” (double quote) => "
  • ‘ (single quote) => '
  • < (less than) => &lt;
  • > (greater than) => &gt;

Biri mecburi, ikisi opsiyonel olan üç parametre ile çalışır. Bunlar string, flags ve charset parametreleridir.

string => Fonksiyonun üzerinde çalışacağı string değerini belirtir.

flags => Bu parametre, tek ve çift tırnaklara karşı uygulanacak muameleyi belirler. Default olarak ENT_COMPAT çalışır, bu durumda yalnızca çift tırnaklar dönüştürülür. ENT_QUOTES durumunda ise hem tek tırnaklar hem çift tırnaklar dönüştürülür. ENT_NOQUOTES durumunda ise tek veya çift tırnaklar üzerinde herhangi bir dönüştürme uygulanmaz.

charset => Dönüştürme işleminde kullanılacak olan karakter setini belirler.

Uygulayabileceğiniz karakter setleri;

ISO-8859-1 ISO8859-1 Western European, Latin-1
ISO-8859-15 ISO8859-15 Western European, Latin-9. Adds the Euro sign, French and Finnish letters missing in Latin-1(ISO-8859-1).
UTF-8 ASCII compatible multi-byte 8-bit Unicode.
cp866 ibm866, 866 DOS-specific Cyrillic charset. This charset is supported in 4.3.2.
cp1251 Windows-1251, win-1251, 1251 Windows-specific Cyrillic charset. This charset is supported in 4.3.2.
cp1252 Windows-1252, 1252 Windows specific charset for Western European.
KOI8-R koi8-ru, koi8r Russian. This charset is supported in 4.3.2.
BIG5 950 Traditional Chinese, mainly used in Taiwan.
GB2312 936 Simplified Chinese, national standard character set.
BIG5-HKSCS Big5 with Hong Kong extensions, Traditional Chinese.
Shift_JIS SJIS, 932 Japanese
EUC-JP EUCJP Japanese

Şimdilik bu kadar.

Leave a Reply