1. magic_quotas $_COOKIE, $_POST, $_GET gibi ortam değişkenlerinin
değerlerindeki ' ve \ veya " gibi karakterlere kaçış karakteri ekler ("\").

php kullanan birçok yazılımcıya göre ve bana göre de oldukça saçma bir
kavramdır. magic_quotas açıken gelen veriler escaped string olarak gelir. bu
kontrolü normalde programcı yapması gerekirke php nin bu görevi üstlenerek
orjinal veriyi değiştirmeye hakkı olduğunu sanmıyorum. 5. sürümden sonra
çakma oop dışında, phpnin bu tip mantık hatalarından dolayı çokta iyiye
gittiğini sanmıyorum.

evet, magic_quotas on durumundayke gelen veriyi birde
mysql_real_escape_string ile işleme alırsan ikinci kaçış karakterlerini
ekleyecek ve veri bozulacaktır.

pratikte magic_quotas ın açık olup olmadığını kontrol eden, açık değilse
mysql_real_escape_string uygulayan bir escapeString($str)  fonksiyonu daha
uygun olur.

biraz daha mantıklı bir seçeneğin iste prepared statements kullanman. mysqli
kütüphanesi ile prepared statement ler kullanarak hiçbir kaçış masrafında
gerek kalmadan tüm bilgileri veritabanı motoruna güvenli bir şekilde
yollayabilirsin.

2. tamamen veriyi hangi amaçla kullanacağına bağlı. mesela veri içerisinde
arama yapacaksan, html kodlarıyla birlikte veritabanına gömmek çok makul
değil. veya yalnızca gösterim yapılcak bir alan içinde runtime'da metni
biçimlendirmek yerine kayıt esnasında biçimlendirerek kaydetmek daha
mantıklı.

kolay gelsin.

21 Ekim 2009 00:54 tarihinde OKAN <[email protected]> yazdı:

>  Merhabalar iki sorum olarak, ilgilene arkadaşlara simdiden teşekkür
> ederim.
>
> 1. mysql_real_escape_string() fonksiyonunun kullanımı hakkında bilgi rica
> ediyorum, bu fonksiyonu, magic_quotas ON iken kullanmaya gerek yoktur
> yazanbazı forum mesajları gordum, dogru mudur? Yani magic_quotas tam olarak
> ne işe yarar?
>
> magic_quotas on olan bir sunucuda, mysql_real_escape_string() kullanılmalı
> mıdır? Kullanılırsa girilen verileri okumak icin stripslashes() kullanmak mı
> gerekir?
>
> 2. htmlentities(), htmlspecialchars() ile HTML karakterleri dönüştürüyoruz,
> siz bu dönüşümü veriyi veritanabına yazarken mi gerçekleştiriyorsunuz yoksa
> HTML çıktıyı hazırlarken mi? performans açısından veritabanına yazarken
> gerçekleştirmek mantıklı ancak pratikte nasıl kullandığınızı merak ediyorum.
>
> Teşekkürler
> OKAN ARI
>
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>
_______________________________________________
Linux-programlama mailing list
[email protected]
http://liste.linux.org.tr/mailman/listinfo/linux-programlama

Cevap