• 08-05-2007, 10:42:49
    #1
    herkese selam

    ignele.php
    duzenle.php

    diye formlarım var.

    ignele.php'de bir sorun yok ama duzenle.php de güncelleştirme yaparken ' işaretini kullanamıyorum.

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near..

    şeklinde hata veriyor. ; , " gibi işaretleri kabul ediyor ama ' olmuyor.

    yardım ederseniz sevinirim.
  • 08-05-2007, 11:18:35
    #2
    tırnak işaretleri \" bu şekilde post etmeyi dene
  • 08-05-2007, 11:28:28
    #3
    evet oldu, ama \' değilde direk ' olarak yazamaz mıyız?
  • 08-05-2007, 11:34:24
    #4
    ' yap sonra bunu post ettikten str_replace ile ' tırnakları \' ile değiştir sonra db ye yaz
  • 09-05-2007, 14:09:17
    #5
    Üyeliği durduruldu
    ' karkterinden kaçış yok ama şöyle birşey önerebilirim


    function kodlaracevir($metin) {
        $ara = array("\"", "'", "\\", '\"', "\'", "<", ">", "&nbsp;");
        $degistir = array("&quot;", "'", "\", "&quot;", "'", "&lt;", "&gt;", " ");
        $metin = str_replace($ara, $degistir, $metin);
        return $metin;
    }
  • 09-05-2007, 14:16:44
    #6
    Misafir
    addslashes ??


    Example 2334. An addslashes() example
    <?php
    $str = "Is your name O'reilly?";
    
    // Outputs: Is your name O\'reilly?
    echo addslashes($str);
    ?>
  • 09-05-2007, 14:18:45
    #7
    <?php
    $icerik = addslashes($_POST['icerik']);
    ?>
  • 09-05-2007, 14:38:58
    #8
    Üyeliği durduruldu
    posttan gelen her veride bu sorunu yaşarsın sql e eklerken yapacağın şey
     foreach($_POST as $sa=>$ho) $_POST[$sa]=addslashes($_POST[$sa]);
    bunu veri eklerken mysql_query("insert into .... dan önce koymalısın
    veri okurkende mysql_fetch_Array ve ya fetch_assoc ile okuyup
    hemen sqlden geleni php arraylarına döktükten sonra
     (Ör: $gel=mysql_fetch_array($sorgu); & $gel=mysql_fetch_assoc($sorgu); )
     foreach($gel as $sa=>$ho) $gel[$sa]=stripslashes($gel[$sa]);
    gibi yapıp sql e eklerken ' => \' , " => \" yaparsın
    okurkende tam tersi syntax engeline takılmamış olursun
  • 09-05-2007, 16:25:04
    #9
    Üyeliği durduruldu
    function atislas($veri){
    	if (!get_magic_quotes_gpc()) { 
    		$veri = addslashes($veri); 
    		} 
    	return $veri;
    }
    yukarıdaki kodu eklersin mesela $_POST['deneme'] değişkeninde tırnak vb. kullanılması durumu var veya kullanılma ihtimali var.

    $_POST['deneme']=atislas($_POST['deneme']); veya isim değiştirip
    $deneme=atislas($_POST['deneme']);

    şeklinde filtreden geçirdikten sonra işlem rahat yapabilirsin.