• 31-07-2013, 10:50:46
    #1
    Selam arkadaşlar aşağıda verdiğim kodda addslashes fonksiyonunu nerede kullanacağım çözemedim ?

    <?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>';
    
    ?>
  • 31-07-2013, 11:36:26
    #2
    hocam 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:37:04
    #3
    Başlık ve mesaj'da kullanabilirsin. ayrıca kısa bir bilgi: addslashes tırnak işaretlerinin önüne \(escape) karakteri getirerek SQL injection gibi saldırılardan korunmak için kullanılır. ona göre istediğin yerde kullanabilirsin bu harika fonksiyonu
  • 31-07-2013, 11:38:04
    #4
    addslashes 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:11
    #5
    Sorunum
    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:48:09
    #6
    MehmetKS adlı üyeden alıntı: mesajı görüntüle
    Sorunum
    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>";

    stripslashes
  • 31-07-2013, 11:52:00
    #7
    msgr adlı üyeden alıntı: mesajı görüntüle
    stripslashes

    Bu kodu nereye ekleyeceğim onu soruyorum açıkcası
  • 31-07-2013, 11:58:03
    #8
    stripslashes($goster["baslik"])
  • 31-07-2013, 12:03:42
    #9
    fatihsarac adlı üyeden alıntı: mesajı görüntüle
    stripslashes($goster["baslik"])
    Malesef olmuyor.