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
