Verileri doğrulamak için PHP ile filtreleme işlemleri

Ziyaretçilerden gelen verilerin istediğimiz formata uygunluğunu kontrol etmeliyiz ki, güvenlik açığı yaratmayalım. E-postaları, web adreslerini, bilgi girişlerini ve dahasını 🙂 Her birine uygun farklı fonksiyonlar yazıldı bu vakte kadar. Ancak PHP 5.2.0 ve üstü sürümlerde bu fonksiyonlara gereksinim azaldı. Çünkü PHP filtreleme fonksiyonları standart oldu.

PHP filtre fonksiyonları

PHP filtre fonksiyonları 5.2.0 ve üstü sürümlerde hazır olarak bulunuyor.

filter_has_var

Bu fonksiyon ile aramakta olduğunuz değişkenin ilgili değişken türü içerisindeki varlığını sorgulayabiliyorsunuz. Yani,

demek,

oluyor. Yollanan POST verileri içerisinde kullaniciadi değişkeninin varlığını sorguluyoruz. Fonksiyondaki ilk parametreye değişken türünü ikincisine ise adını giriyoruz.

Girebileceğiniz türler şunlar oluyor:

  1. INPUT_GET
  2. INPUT_POST
  3. INPUT_COOKIE
  4. INPUT_SERVER
  5. INPUT_ENV

filter_id

Filtrelerin ID numaralarını verir. filter_ list ile elde edilecek dizi değişkendeki numaralar filtre ID numarası değildir.

echo filter_id('number_int');

Yukarıdaki gibi işlem ile number_int filtresinin ID numarası olan 519 rakamını elde ederiz. Eğer geçerli bir filtre adı girmezsek, herhangi bir rakam dönmeyecektir.

filter_input_array

Bu fonksiyon ile birden fazla kontrol yapabiliyorsunuz. Uzunca örnek girmek istemiyorum. Şuradaki örneğe bakalım. Görüldüğü için POST değerleri geçici olarak tanımlanmış ve her bir POST değeri için filtrelemeler dizi değişken olarak tanımlanmış 😉

filter_input

Tek bir veri için filtreleme işlemi yapılabiliyor.

Search again.";
?>

sonrasında elde edeceğimiz çıktı:

[CODE]You have searched for Me & son.
Search again.[/CODE]

olacaktır.

filter_list

Kullanılabilecek tüm filtre türleri dizi değişken olarak listelenir. Örnek kullanım,

print_r(filter_list());

kodlanarak görülebilir ve,

[CODE]Array
(
[0] => int
[1] => boolean
[2] => float
[3] => validate_regexp
[4] => validate_url
[5] => validate_email
[6] => validate_ip
[7] => string
[8] => stripped
[9] => encoded
[10] => special_chars
[11] => unsafe_raw
[12] => email
[13] => url
[14] => number_int
[15] => number_float
[16] => magic_quotes
[17] => callback
)[/CODE]

elde edilir.

filter_var_array

filter_input_array olandan farkı değişkenleri uygulanmasıdır. Gerisi filter_input_array fonksiyonu ile aynıdır.

filter_var

Bu fonksiyon da filter_input ile aynıdır ancak sadece değişkenlere uygulanır.

Sabitler

Her fonksiyon ile birçok sabit kullanılabiliyor. Bu sabitler IP adresinin geçerlilik kontrolünü yapabildiği gibi, verinin dizi değişken olup olmadığı gibi bilgileri de kontrol edebiliyor. Tüm sabitleri buraya yazarak açıklamam mümkün değil, o nedenle Predefined Constants adresine bakmanızı rica ediyorum.

Sonuç Olarak

Web yazılımlarımızda tüm bu kontrolleri yapmalıyız ki, kararlı ve problemsiz veriler elde edelim. Ancak tüm bu kontrolleri yapmak için uzun uzun kod yazmak gerekiyordu ve günü geliyor üşenebiliyordunuz. Ancak PHP 5.2.0 sürümüyle birlikte gelen filtreleme fonksiyonları tüm bu zahmetten kurtarıyor.

Hala PHP 4.x.x sürümü ile çalışan alan sağlayıcı firmalar bulunuyor mu bilmiyorum. Ancak, artık PHP 5 sürümlerine geçmenin vakti geldi ve geçiyor. Aynı durum MySQL için de geçerli 😉