function suzgec($veri){
$veri = htmlspecialchars($veri);
$veri = trim($veri);
$veri = addslashes($veri);
$veri = mysql_real_escape_string($veri);
$veri = strip_tags ($veri);
return $veri;
}

gibi bir fonksiyonum var. sitedeki yazıları bu filtreden geçirip veritabanına kaydediyorum.

ancak % işaretiyle ilgili sorun var. %değer yazdıktan sonra, % ve %'den sonra gelen hiçbir karakteri veritabanına kaydetmiyor. muhtemelen filtre otomatik siliyor.

buna yukarıdaki fonksiyonlardan hangisi sebep oluyor olabilir? ne yapmamı tavsiye edersiniz?

 

filtreleri tek tek kapatıp deneyebilirsin. burdan bakınca çok anlamlı gelmedi bana :)

himmet dayi

bu kadar fonksiyonu kullanmandaki amaç nedir ? bu süzgeçten gelen veriyi veritabanına kayıt ediyorsan trim ve mysql_real_escape_string dışındakileri kullanmanı gerektirecek bir durum yok. veri tabanından okuyup, kullanıcıya gösteriyorsan htmlspecialchars dışındakilere gerek yok. Php'yi haybeye yoruyorsun.

Sıralamadan dolayı saçmalıyor olabilir. Örneğin addslashes %'ın önüne \ ekliyordur mysql_real.. başka bir karakter ekliyordur en alttaki strip_tags'da o karakterler arasını siliyordur. Tahminim strip_tags yönünde strip tags'ı kaldırıp sonucu hem veritabanına kayıt ederken bir oku hem de normal php olarak oku arasında fark var mı incele.

bir kac yazar once
1

mobil görünümden çık