<?php
$bul = mysql_query("select * from kurumsal order by id desc");
echo "
<div id='kurumsal_icerik_genel'>
<form action='kurumsal_sil.php' method='post'>";
while ($goster = mysql_fetch_array($bul)){
extract($goster);
if ($goster)
echo "
<div id='kurumsal_icerik'>
<strong>BAŞLIK</strong><br />{$goster["baslik"]}<br /><br />
<strong>KONU İÇERİĞİ <br /></strong>{$goster["mesaj"]}<br />
<a href='kurumsal_duzenle.php?id={$id}'>Bu Mesajı Düzenle</a><b> //
Sil : </b><input type='checkbox' value='{$id}' name='kurumsal_sil[]' />
</div>";
}
echo '
<button type="submit">Seçilen Yazıları Sil</button>
</form></div>';
?> PHP SORU Addslashes fonksiyon kullanımı ?
8
●1.095
- 31-07-2013, 10:50:46Selam arkadaşlar aşağıda verdiğim kodda addslashes fonksiyonunu nerede kullanacağım çözemedim ?
- 31-07-2013, 11:36:26hocam addslashes fonksiyonu ilk önce ne işe yarar onu anlatayım;
veritabanına ya da php vasıtasıyla post/get taşıması yapacağın yerlerde içinde tırnak bulunan metinler, tırnak bulunan yerde kesilmiş gibi gözüktüğünden, veriyi alan tarafta sorun oluşur.
nasıl?
örneğin bir sorgun var diyelim;
mysql_query("insert into yorum (yorum,tarih) values ('$yorum','$tarih'));
ne yapıyoruz burada yorum tablosunda bulunan yorum sütünuna yorum değişkeni içinde bulunan metini koyuyoruz. ee burada tırnak bizim için nasıl sorun olur?
şöyle;
$yorum = "ben bir metinim ve benim içimde tırnak ' işareti bulunmaktadır.";
olunca sorgun şöyle bir hal almış oluyor
insert into yorum (yorum,tarih) values ('ben bir metinim ve benim içimde tırnak ' işareti bulunmaktadır.','2013-07-31 00:00:00');
farkına varabilirsen şöyle olmuş oldu, metinin içinde bir tane tırnak geldiğinden dolayı sanki arada bir sütün yeri daha varmış ama kapatılmamış gibi oldu. bu da hata vermesine sebebiyet verir. (sunucu ayarları değiştirilmemiş, defaulttaysa)
buna çözüm de tırnak işaretinden önce bir adet \ ters slash gelmesidir. yani \' halini alınca, php orada metnin bitmediğini devam ettiğini ve sonraki tırnağa kadar gitmesi gerektiğini anlar.
addslash de senin metnin içinde bulunan tırnaklara \ işaretini ekler.
senin paylaştığın kodda addslash ekleyecek bir yer yok kısacası.
sen en iyisi if($_POST[kurumsal_sil]){ //burada işlem } kontrolü yap ki boş olduğunda foreach hata vermesin. - 31-07-2013, 11:38:04addslashes formdan gelen verileri zararlı kodlardan temizlemek için kullanılıyor diye biliyorum. Yukarıdaki kodlarda post metodu ile gelen bir veri göremedim. Bu kodlar sadece listelemek amaçlı yapılmış. Seçilenleri sil butonuna bastığınızda işlem görecek kodları yazmamışsınız.
kurumsal_sil.php de post metyoduyla aldığınız veriyi örnek
$gelen_id = addslashes($_POST[kurumsal_sil]);
bu şekilde addslashes fonksiyonu ile temizlersiniz.
Benim bildiğim bukadar
- 31-07-2013, 11:43:11Sorunum
Burada listelediğim mesaj ve başlıkta " ve ' metin içinde kullandığımda başlarına \" slaç geliyor peki neyapmam gerek ?
<div id='kurumsal_icerik'> <strong>BAŞLIK</strong><br />{$goster["baslik"]}<br /><br /> <strong>KONU İÇERİĞİ <br /></strong>{$goster["mesaj"]}<br /> <a href='kurumsal_duzenle.php?id={$id}'>Bu Mesajı Düzenle</a><b> // Sil : </b><input type='checkbox' value='{$id}' name='kurumsal_sil[]' /> </div>"; - 31-07-2013, 11:52:00msgr adlı üyeden alıntı: mesajı görüntüle
Bu kodu nereye ekleyeceğim onu soruyorum açıkcası