Arkadaşlar ilginç bir problemim var.
baglanti.php sayfam var. Bu sayfayı index.php dosyama include ederek veritabanı bağlantısını başlatıyorum.
Güvenlil için baglanti.php sayfama
$_POST = array_map("mysql_real_escape_string",$_POST);
$_GET = array_map("mysql_real_escape_string",$_GET);
kodlarını ekliyorum. Bu kodlar lokalde tırnak işaretlerini \' bu duruma getirmezken, sunucuya attığımda bütün tırnak işaretlerinin başına \ işareti geliyor. Local ile web arasında ki bu farklılık neden kaynaklanabilir?
Bu tek tırnak sorununu bütün $_POST işlemlerini değiştirmeden baglanti.php ile nasıl çözebilirim?
Bir başka sorunda hiç bir şeyden geçirmediğimde ' işareti olduğunda hata verirken hosta yüklediğimde ' işareti olanları da ekliyor veritabanına.
mysql_real_escape_string
5
●976
- 14-03-2009, 19:04:34Eposta Aktivasyonu Gerekmekte
mysql_real_escape_string();
ile mysql için anlam ifade eden karakterleri devre dışı bırakıyorsun.' gibi karakterleri escape ederek etkisiz hale getiriyor.
Verileri çekerken
<?php echo strtr($metin,"\\",""); ?>
yaparsan \ işaretlerini yok eder. - 14-03-2009, 19:18:18magic_quotes açık olup olmamasına göre local ile sunucu arasında farklılık gözlenebilir. önce bunun açık veya kapalı olduğunu kontrol ettirip ona göre mysql_escape.. uygulaman gerekir..
- 15-03-2009, 10:48:04Üyeliği durdurulduilk başta magic quota kontrolü ile tüm post get cookie session degerlerini array map ile strip slash yapmalisiniz
Php Array Map Foksiyonu görsel video eğitimi
de konu ile ilgili egitim videom var.
daha sonra kaydederken mysql_real_escape_string yapmalısınız.
ömrünüz boyunca rahat edersiniz