• 14-09-2013, 16:55:18
    #1
    $guncelle = mysql_query("UPTADE mesajlar SET yazan='$adsoyad',eposta='$eposta',mesaj='$mesaj',o nay='$onay' WHERE id='$id'");

    buradaki yanlış nedir arkadaşlar yardımcı olabilirseniz sevinirim. biraz araştırdım sondaki tek ve çift tırnağın yan yana olmasından kaynaklandığı yönünde düşündürdü. mysql_real_escape_string fonksiyonunu da denedim fakat tam olarak nasıl kullanacağımı bilmediğimden dolayı belki yapamamışımdır. yukarıdaki kod tarayıcıda;

    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 'UPTADE mesajlar SET yazan='olcay tuncel',eposta='olcay@hotmail.com',mesaj='rwqrq' at line 1

    hatasını veriyor fakat mysql_real_escape_string fonksiyonunu şu şekilde kullandığımda;

    $guncelle = mysql_real_escape_string(mysql_query("UPTADE mesajlar SET yazan='$adsoyad',eposta='$eposta',mesaj='$mesaj',o nay='$onay' WHERE id='$id'"));

    böyle kullandığımda ise sorguyu tamamlıyor fakat veritabanında güncelleme işlemi gerçekleşmiyor. Anlayamadım..
  • 14-09-2013, 18:28:03
    #2
    Tek tırnakla çift tırnak yan yana kullanmaktan bir hata çıkmaz. ancak kodda o nay yazılmış onay olucak sanırım.
  • 16-09-2013, 11:18:00
    #3
    orjinal kodlarda birleşik fakat yine aynı hatayı veriyor. yardım edebilecek kimse yok mu?
  • 16-09-2013, 11:28:48
    #4
    Üyeliği durduruldu
    Uptade nedir yahu

    GT-I9200 cihazımdan Tapatalk 4 ile gönderildi
  • 16-09-2013, 13:20:21
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Problemin sebebi.
    $adsoyad,$eposta,$mesaj vb.. değişkenlerin içerisindeki '(tırnak) karekterinden kaynaklanıyor.Bu nedenle o değişkenleri sorguya sokmadan önce tırnak işaretini escape etmeniz gerekir.

    $adsoyad= addslashes($adsoyad);
    yada

    $adsoyad= str_replace("'","\'",$adsoyad);
    gibi.
  • 16-09-2013, 13:51:34
    #6
    S4l1h adlı üyeden alıntı: mesajı görüntüle
    Problemin sebebi.
    $adsoyad,$eposta,$mesaj vb.. değişkenlerin içerisindeki '(tırnak) karekterinden kaynaklanıyor.Bu nedenle o değişkenleri sorguya sokmadan önce tırnak işaretini escape etmeniz gerekir.

    $adsoyad= addslashes($adsoyad);
    yada

    $adsoyad= str_replace("'","\'",$adsoyad);
    gibi.
    Hemen deniyorum çok teşekkür ederim.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 13:51:34 -->-> Daha önceki mesaj 13:33:02 --

    S4l1h adlı üyeden alıntı: mesajı görüntüle
    Problemin sebebi.
    $adsoyad,$eposta,$mesaj vb.. değişkenlerin içerisindeki '(tırnak) karekterinden kaynaklanıyor.Bu nedenle o değişkenleri sorguya sokmadan önce tırnak işaretini escape etmeniz gerekir.

    $adsoyad= addslashes($adsoyad);
    yada

    $adsoyad= str_replace("'","\'",$adsoyad);
    gibi.
    ADDSLASHES VE STR_REPLACE FONKSİYONLARINI SÖYLEDİĞİN GİBİ KULLANMAYA ÇALIŞTIM FAKAT BECEREMEDİM GALİBA KODLARIN TAMAMININ İÇERİSİNDEKİ AÇIKLAMA KISMINDAKİLER SENİN ÖNERDİĞİN ŞEKİLDE HEM ADDSLASHES HEM DE STR_REPLACE OLARAK KULLANDIM FAKAT OLMADI. KODLAR ŞU ŞEKİLDE;

    <html>
    <head>
    <title>Form</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>


    <?php

    include("db_connection.php");

    $id = @$_GET["id"];

    if ($_POST){
    $adsoyad = $_POST["adsoyad"];
    $eposta = $_POST["eposta"];
    $mesaj = $_POST["mesaj"];
    $onay = $_POST["onay"];
    /*
    $adsoyad= str_replace("'","\'",$adsoyad);
    $eposta= str_replace("'","\'",$eposta);
    $emesaj= str_replace("'","\'",$mesaj);
    $onay= str_replace("'","\'",$onay);

    $adsoyad = addslashes($adsoyad);
    $eposta = addslashes($eposta);
    $mesaj = addslashes($mesaj);
    $onay = addslashes($onay);
    */

    $guncelle = mysql_query(("UPTADE mesajlar SET yazan='$adsoyad',eposta='$eposta',mesaj='$mesaj',o nay='$onay' WHERE id='$id'"));
    if ($guncelle){
    echo '<font color="red">başarıyla güncellendi</font>';
    }else {
    echo 'bir sorun oluştu<br />'. mysql_error();
    }
    }else {

    $bul = mysql_query("select * from mesajlar WHERE id='$id'");
    $goster = mysql_fetch_array($bul);
    extract($goster);

    echo '<form action="" method=post>
    <table cellpadding="5" cellpadding="5">
    <tr>
    <td>Ad Soyad</td>
    <td><input type="text" name="adsoyad" value="'.$yazan.'" ></td>
    </tr>
    <tr>
    <td>Eposta</td>
    <td><input type="text" name="eposta" value="'.$eposta.'" /></td>
    </tr>
    <tr>
    <td>Mesaj</td>
    <td><textarea row="10" cols="30" name="mesaj">'.$mesaj.'</textarea></td>
    </tr>
    <tr>
    <td>Onay</td>
    <td><select name="onay">
    <option value="1"';
    if ($onay==1){echo ' selected';}
    echo'>Evet</option>
    <option value="0"';
    if ($onay==0){echo ' selected';} echo '>Hayır</option>
    </select></td>
    </tr>
    <tr>
    <td></td>
    <td><input type="submit" value="Güncelle" /></td>
    </tr>
    </table>
    </form>';
    }
    ?>
    </body>
  • 16-09-2013, 14:35:29
    #7
    Yukarıdaki arkadaşın belirttiği gibi sorgudaki

    Alıntı
    o nay='$onay'
    alanını
    Alıntı
    onay='$onay'
    Şeklinde değiştirin.
  • 16-09-2013, 14:37:48
    #8
    S4l1h adlı üyeden alıntı: mesajı görüntüle
    Yukarıdaki arkadaşın belirttiği gibi sorgudaki



    alanını

    Şeklinde değiştirin.
    O c/p yapınca öyle görünüyor normalde birleşik.
  • 16-09-2013, 14:45:40
    #9
    <html>
    <head>
        <title>Form</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    </head>
    <body>
    
    
    <?php
    
    include("db_connection.php");
    
    // tıknak replace
    function r($data)
    {
        return str_replace("'", "\'", $data);
    }
    
    $id = @$_GET["id"];
    
    if ($_POST) {
        $adsoyad = $_POST["adsoyad"];
        $eposta = $_POST["eposta"];
        $mesaj = $_POST["mesaj"];
        $onay = $_POST["onay"];
    
        $adsoyad = r($adsoyad);
        $eposta = r($eposta);
        $mesaj = r($mesaj);
        $onay = r($onay);
    
        $sorgu = "UPDATE mesajlar SET 
                    yazan='$adsoyad',
                    eposta='$eposta',
                    mesaj='$mesaj',
                    onay='$onay' 
                    WHERE id='$id'";
    
        $guncelle = mysql_query($sorgu);
    
        if ($guncelle) {
            echo '<font color="red">başarıyla güncellendi</font>';
        } else {
            echo 'bir sorun oluştu<br />' . mysql_error();
        }
    } else {
    
        $bul = mysql_query("select * from mesajlar WHERE id='$id'");
        $goster = mysql_fetch_array($bul);
        extract($goster);
    
        echo '<form action="" method=post>
    <table cellpadding="5" cellpadding="5">
    <tr>
    <td>Ad Soyad</td>
    <td><input type="text" name="adsoyad" value="' . $yazan . '" ></td>
    </tr>
    <tr>
    <td>Eposta</td>
    <td><input type="text" name="eposta" value="' . $eposta . '" /></td>
    </tr>
    <tr>
    <td>Mesaj</td>
    <td><textarea row="10" cols="30" name="mesaj">' . $mesaj . '</textarea></td>
    </tr>
    <tr>
    <td>Onay</td>
    <td><select name="onay"> 
    <option value="1"';
        if ($onay == 1) {
            echo ' selected';
        }
        echo '>Evet</option> 
    <option value="0"';
        if ($onay == 0) {
            echo ' selected';
        }
        echo '>Hayır</option> 
    </select></td>
    </tr>
    <tr>
    <td></td>
    <td><input type="submit" value="Güncelle" /></td>
    </tr>
    </table>
    </form>';
    }
    ?>
    </body>
    update yazımıda hatalıydı yukardaki kodlar büyük ihtimal çalışacaktır.