Konular

EBooklar

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.

Verileri doğrulamak için PHP ile filtreleme işlemleriPHP 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,

 
filter_has_var(INPUT_POST, 'kullaniciadi'); >  
 

demek,

 

  isset($_POST['kullaniciadi']);

 

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_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);

echo "You have searched for $search_html.n";
echo "<a href='?search=$search_url'>Search again.</a>";
 
 

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

 
You have searched for Me &#38; son.
<a href='?search=Me%20%26%20son'>Search again.</a>  
 

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,

 

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
)  

 

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

 

Kaynak www.dmry.net/verileri-dogrulamak-icin-php-ile-filtreleme-islemleri


Yorumunuzu Ekleyin





  • Kurallı İfadeler (regex Engine)
  • Kurallı İfadeler (regex Engine) ~ 32,812

    Bir regex'in gerçekte nasıl çalıştığını bilmek daha efektif çalışan regex ifadeleri oluşturmamızı ve regex'leri daha isabetli oluşturmamızı sağlar. Bu yazımızda oluşturduğunuz regex ifadelerinin neden beklediğiniz sonuçları vermediğini ve umduğunuz eşleşm...



  • PHP ile PDF dosya oluşturmak
  • PHP ile PDF dosya oluşturmak ~ 26,088

    Php ile yeni bir pdf dosyası oluşturmak : Öncelikle php ile pdf işlemleri yapmak için bir pdf kütüphanesine ihtiyacınız olacak



  • PHP nedir?
  • PHP nedir? ~ 24,730

    HTML kodlarının arasına yerleştirilmiş php kodlarından ayrıştırıp işleyerek sonuçta saf HTML formatında bir çıktı üretmek ve Web sunucusuna iletmektir.


  • $_FILES
  • $_FILES ~ 23,431

    Örnek kod ve açıklamalar



  • Oop - Nesne Yönelimli Programlama
  • Oop - Nesne Yönelimli Programlama ~ 20,365

    Artık ister istemez her programcının bulaştığı bu teknik hakkında sayısız makale yazılmıştır bu güne kadar. Bu makale de onlardan biri


  • Xampp Kurulumu ~ 19,473

    Xampp apache, mysql, php ve phpmyadmin için kolay ve basit kurulum sağlayan bir uygulamadır.




  • Php İle Excel Dosyası Oluşturmak
  • Php İle Excel Dosyası Oluşturmak ~ 18,589

    Genelde, herhangi bir biçimlendirme söz konusu olmadığında, veritabanındaki bir bilgiyi ya da başka bir tabloyu excel ortamına aktarmak için csv yöntemini kullanırım. Bu yöntem herkesin bildiği gibi, her sütunu tab ya da noktalı virgül gibi bir karakterle...


  • Php ile Oturum Yönetimi (SESSION)
  • Php ile Oturum Yönetimi (SESSION) ~ 17,867

    Türkçesi oturum anlamına gelen session bilgilerin saklanması için kullanılan mantıksal bir nesnedir.Session oturum yönetimini kullanarak şifreli sayfalar oluşturarak ve bu sayfaları belirlediğiniz kullanıcıların görmesini sağlayabilirsiniz.


  • En iyi 25 php template motoru
  • En iyi 25 php template motoru ~ 17,755

    Php tabanlı web siteleri dizayn ederken, php kodlarını html kodlar arasına gömeriz. Fakat gün gelir bu kodları düzenlemek istediğimizde çok büyük bir çaba gerektirir. Bu tarz durumlarla başa çıkabilmek için ve daha kararlı bir sistem kodlamak için t...


  • Dizi Tanımlamaları
  • Dizi Tanımlamaları ~ 17,510

    PHP’de array tanımlayıcısını kullanarak içerisinde elemanları yerleştirmek yoluyla ya da index numarasını köşeli parantezler içerisinde belirterek atama yaparak dizi oluşturmak mümkündür


  • Php Mysql to XML
  • Php Mysql to XML ~ 17,475

    Bu yapıyı geliştirerek mysql veritabanınızdaki datalarınızı xml standartlarına dönüştürebilirsiniz.


  • $_SERVER
  • $_SERVER ~ 17,430

    $_SERVER host bilgileri, header bilgileri, yollar ve script yolları gibi bilgileri içeren bir dizidir. Bu dizideki değerler web server tarafından üretilir. Tüm server yazılımlarının, tüm değerleri atayacağına dair bir kesinlik yoktur. Yazılım bazıl...











  • $_REQUEST
  • $_REQUEST ~ 14,413

    $_GET, $_POST, ve $_COOKIE değişkenlerini içeriğinden meydana gelen çağrışımlı bir dizidir. Bu değişken bir superglobal olduğu için tüm alanlarda (scope) geçerlidir ve bundan dolayıdır ki global $_REQUEST ; şeklinde bir tanımlamaya ihtiyaç duymaz. Eğer ...