Mesela giriş veya kayıt formu hazırlıyorsunuz, bu durumda mutlaka POST tipinde değişken kullanmanız gerekecek. Ardından bu veriyi süzgeçten geçirmeniz lazım, bir rivayete göre POST değişkeninden çektiği verileri filtrelemeden veritabanına gönderen yazılımcılar toprağa gömülüp taşlanırmış.

Şimdi ilgili POST değişkeninin içeriğini temizlemek için standart haline gelmiş filtreleme fonksiyonu oluşturalım, bu fonksiyon PHP'nin hazırladığı fonksiyonları kullanarak gönderdiğimiz değişkeni temizleyip bize geri verecek.
<?php
function Temizle($veri) {
return trim(htmlspecialchars($veri)); //Değişken içerisindeki HTML karakterlerini ayıkladık bu sayede ilgili post değişkeni kullanılarak sayfaya JS exploit atılması mümkün olmayacak.
}

$isim = Temizle($_POST['isim']);
if (!preg_match('/^[a-zA-Z0-9\s]+$/', $isim)) print 'Lutfen sadece harf girin.'; //Rakamdan sembolden isim olmaz, isim istedik isim gelecek.

$email = Temizle($_POST['email']);
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) print 'Gecersiz mail adresi'; //Biz mail adresi istediysek mail adresi gelmeli, yoksa post most yok.

$sifre= Temizle($_POST['sifre']);
if (strlen($sifre) < 6)  print 'En az 6 karakterli sifre girin.'; //Evet 123456 şifreleri bu şekilde türedi.


//Örneğin GET değişkeni ile id alacaksınız bu durumda sadece 0'dan büyük sayı yazılmışsa işleme alın.
//Önce değişkenin isset edilip edilmediğine bakalım, eğer isset edilmişse içeriğini kontrol edelim çünkü bize sadece sayı lazım.
if(isset($_GET['id']) && preg_match("/^[A-Fa-f0-9]{32}$/", $_GET['id'] ) > 0) {
$id = $_GET['id']; //Artık kullanabiliriz.
}

//Sayısal olup olmadığı umurumuzda olmayan bir GET değişkenini çekelim
if(isset($_GET['bar']) && $_GET['bar'] != '') {
$foo = $_GET['bar']; //Artık kullanabiliriz.
}
?>
Yorgun olduğum için hatalı veya eksik kod yazmış olabilirim, amacım filtrelemenin temelini anlatabilmek bunu başardıysam ne mutlu bize