Tırnak işaretli içeriklerin MySQL e kaydedilememesi? PHP tırnak problemi?

Merhaba,

Her zaman karşılaşacağınız bir problem olmamakla birlikte yeni sql sürümlerinde bu problem oluşmamaktadır. Aslında yeni sürümlerde bu problemi yaşamamamızın sebebi de sql enjeksiyon yöntemlerinin önüne geçilmiş olması. 😉

Problem şu ki bir siteye yönetim panelinden haber ekleyeceksiniz.
Haberinizin başlığı : PHP’nin yeni versiyonu!

burda ki tek tırnak veri tabanına kayıt esnasında hata verecektir. İçeriğiniz kaydedilemeyecektir.

mysql_query("insert into haberler (id, baslik, icerik) values ('', 'PHP'nin yeni versiyonu', 'bla bla bla') ");

örnekte de gördüğünüz gibi içerik eklerden fazladan tek tırnak sql cümlemizin formatını bozdu.

Bunu aşmanın çok kolay bir yolu var.


$veri = "PHP'nin yeni versiyonu!";
echo addslashes($veri);


Ekran Çıktısı: “PHP\’nin yeni versiyonu! “

php’nin addslashes() fonksiyonu, yazımızda ki tek tırnakların önüne bölü işareti koyacak. Böylelikle veritabanı kaydında problem yaşamayacağız.

Bunun yanı sıra eğer içerikte ki bölü işaretlerini temizlemek isterseniz de, stripslashes() fonksiyonu yardımımıza koşuyor;


$veri = "PHP\'nin yeni versiyonu!";
echo stripslashes($veri);

Ekran Çıktısı : PHP’nin yeni versiyonu!

Güle güle kullanın, bol bol kod yazın…

Cihan.

6 Yorum

Filed under Fonksiyonlar

6 responses to “Tırnak işaretli içeriklerin MySQL e kaydedilememesi? PHP tırnak problemi?

  1. can

    stripslashes() fonksiyonunda sadece \’ olanlarınki mi gidecek yoksa \\naber\\\ mı gidecek????????

  2. can

    yanı sadece yanında tırnak işareti olanlar mı?(\’)

  3. Senden Allah Razı Olsun !

  4. batuhan

    Eline sağlık saolasın 😉

  5. Süpersiniz az öz kesin çözüm olmuş .Teşekkürler.

  6. Paylaşım için teşekkürler. Gece 3’e kadar sorunun ne olduğunu çözmeye çalıştım ulamadım. Sabah kalktım deneme yanılma yolu ile tırnakların sorun yarattığını farkettim. Bu tarz sorunlar benim gibi hobi amaçlı takılanlar için gerçekten büyük bir sorun.

Yorum bırakın