Array_map komutu ile devasa kolaylıklar

Bir filtre fonksiyonunuz ve bir de veritabanına kayıt yapmak için formunuz var. Klasik yöntemde tüm gönderilen verileri teker teker bu filtre fonksiyonundan geçirmeniz gerekiyor. Oysa bu yazımda sizlere büyük kolaylıklar sağlayacak bir komutu anlatacağım.

Bir filtre fonksiyonunuz ve bir de veritabanına kayıt yapmak için formunuz var. Klasik yöntemde tüm gönderilen verileri teker teker bu filtre fonksiyonundan geçirmeniz gerekiyor. Oysa bu yazımda sizlere büyük kolaylıklar sağlayacak bir komutu anlatacağım.

array_map



Herhangi bir fonksiyonu toplu halde uygulayabilmenize yarar. Dizi olarak çıktı verir. İlk paragrafta bahsettiğim gibi güvenlik filtresi için tek komut ile bunu sağlayacağım.

ÖRNEK KODLAMA


<?php 

# Filtre Fonksiyonumuz

function filtrele($girdi){

    
$girdi htmlspecialchars(mysql_real_escape_string($girdi)); # zararlı kodları temizledik.

    
return $girdi;

}



# Burada ise formdan gönderilen tüm verileri yukardaki filtre fonksiyonuna tabi tutacağım.

$_POST array_map("filtrele",$_POST);



# Şimdi gönül rahatlığı ile veritabanınıza filtreden geçmiş formdaki verileri kaydedebilirsiniz.

$query mysql_query("INSERT INTO kutu (kutu) values ('".$_POST[deneme]."')"); ?>



Gördüğünüz gibi, kulağınızı tersten tutma zamanları sona erdi.


array_map("fonksiyon adi","fonksiyon uygulanacagi veri");



Peki bunu Class (Sınıf)' lar da nasıl uygulayacağız. Ona da hemen bir örnekle cevap vereyim.


array_map(array("çağrılan filtre sınıfı değişkeni","sınıf içindeki fonksiyon"),"fonksiyon uygulanacagi veri");



$filtre = new Filtre(); # filtre sınıfını çağırıyoruz

# filtre sınıfımız içinde clear adında, aynı yukarıda bahsettiğim filtre fonksiyonundan olduğunu varsayalım.



$_POST = array_map(array($filtre,clear), $_POST);



Herkese kolay gelsin.
  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

birçok zahmetten kurtaracak bir fonksiyon... tebrik ederim..
SİMDI bu kodla form alanlarını tek tek cagırmak yerıne bı defadamı cagırmıs olcagız valla harıka bısey bu yaa tesekkürler

Yukarı Git