• 14-08-2008, 20:48:03
    #1
    <?php
    if(isset($_GET['id'])){
    $vid = $_GET['id'];
    }else{
    echo "<h3> HATA : Lütfen Bir yazi Seçin !!!</h3>";
    $vid = 0;
    }
    $veriler = mysql_query("SELECT * FROM yazilar WHERE id = '" . $vid . "' ORDER BY id");
    while ($oku = mysql_fetch_array($veriler))
    {
    $baslik         = $oku['baslik'];
    $resim      = $oku['resim'];
    $yazi        = $oku['yazi'];
    
    print "<table width=\"100%\" cellpadding=\"0\" class=\"tfont\" cellspacing=\"0\" border=\"0\">
    <form method=\"POST\" action=\"dyazilar.php?id=$vid&kaydet\">
    <table border=\"0\" width=\"100%\">
        <tr>
        <td width=\"49%\" class=\"tfont\"></td>
        <td width=\"49%\">";?>
    
        <?php echo "</td>
      </tr>
        <tr>
        <td width=\"49%\" class=\"tfont\">Başlık :</td>
        <td width=\"49%\"><input type=\"text\" style='border-style: solid; border-width: 1; background-color: #4d79bc' class='tfont' name=\"1\" value=\"$baslik\"size=\"27\"></td>
      </tr>
          <tr>
        <td width=\"49%\" class=\"tfont\">resim URL :</td>
        <td width=\"49%\"><input type=\"text\" style='border-style: solid; border-width: 1; background-color: #4d79bc' class='tfont' name=\"2\" value=\"$resim\" size=\"27\"></td>
      </tr>
    <tr>
    
    <td width=\"49%\" class=\"tfont\">Yazi :</td>
    <td width=\"49%\">
    <textarea id='textarea1' name='3' style='width:560px;height:200px;'>$yazi</textarea></td>
    </tr><tr>
    
        <td width=\"49%\"></td>
        <td width=\"49%\"><input type=\"submit\"style='border-style: solid; border-width: 1; background-color: #4d79bc' class='tfont' value=\"     yazi Düzenle !!!    \"></td>
      </tr>
    </table></form>  ";
    }
    ?></table>
    <?php
    if(isset($_GET['kaydet'])){
    
    $a = $_POST['1'];
    $b = $_POST['2'];
    $c = $_POST['3'];
    $vid = $_GET['id'];
    if(mysql_query("UPDATE yazilar SET baslik='$a', resim='$b', yazi='$c',  where id='$vid'"))
    {
    echo "Kayıt Yapıldı !";
    }else{
    echo "Kayıt Yapılamadı !";
    }
    }
    ?>

    Duzenle.php Dosyası yapmaya çalışıyorum formların içinde verileri mysqldan çekiyor yalınız değişiklik yapamıyorum kayıt yapılamadı hatası geliyor
  • 14-08-2008, 20:58:21
    #2
    <?php
    if(isset($_GET['id'])){
    $vid = $_GET['id'];
    }else{
    echo "<h3> HATA : Lütfen Bir yazi Seçin !!!</h3>";
    $vid = 0;
    }
    $veriler = mysql_query("SELECT * FROM yazilar WHERE id = '" . $vid . "' ORDER BY id");
    while ($oku = mysql_fetch_array($veriler))
    {
    $baslik         = $oku['baslik'];
    $resim      = $oku['resim'];
    $yazi        = $oku['yazi'];
    print "<table width=\"100%\" cellpadding=\"0\" class=\"tfont\" cellspacing=\"0\" border=\"0\">
    <form method=\"POST\" action=\"dyazilar.php?id=$vid&kaydet\">
    <table border=\"0\" width=\"100%\">
        <tr>
        <td width=\"49%\" class=\"tfont\"></td>
        <td width=\"49%\">";?>
        <?php echo "</td>
      </tr>
        <tr>
        <td width=\"49%\" class=\"tfont\">Başlık :</td>
        <td width=\"49%\"><input type=\"text\" style='border-style: solid; border-width: 1; background-color: #4d79bc' class='tfont' name=\"1\" value=\"$baslik\"size=\"27\"></td>
      </tr>
          <tr>
        <td width=\"49%\" class=\"tfont\">resim URL :</td>
        <td width=\"49%\"><input type=\"text\" style='border-style: solid; border-width: 1; background-color: #4d79bc' class='tfont' name=\"2\" value=\"$resim\" size=\"27\"></td>
      </tr>
    <tr>
    <td width=\"49%\" class=\"tfont\">Yazi :</td>
    <td width=\"49%\">
    <textarea id='textarea1' name='3' style='width:560px;height:200px;'>$yazi</textarea></td>
    </tr><tr>
        <td width=\"49%\"></td>
        <td width=\"49%\"><input type=\"submit\"style='border-style: solid; border-width: 1; background-color: #4d79bc' class='tfont' value=\"     yazi Düzenle !!!    \"></td>
      </tr>
    </table></form>  ";
    }
    ?></table>
    <?php
    if(isset($_GET['kaydet'])){
    $a = $_POST['1'];
    $b = $_POST['2'];
    $c = $_POST['3'];
    $vid = $_GET['id'];
    $sorgu=mysql_query("UPDATE yazilar SET baslik='$a', resim='$b', yazi='$c',  where id='$vid'");
    if($sorgu){
    echo "Kayıt Yapıldı !";
    }else{
    echo "Kayıt Yapılamadı !";
    }
    }
    ?>
    Uptade bölümünü yanlislikla if in icinde kullanmissin, üstteki kodlar calisir.
  • 14-08-2008, 20:58:33
    #3
    yazi='$c',
    virgülü silin
  • 14-08-2008, 21:15:52
    #4
    ikinizede çok çok teşekkürler arkadaşlar sayenizde php yi oğrenecem
  • 14-08-2008, 21:27:22
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    konu dışı : browser aracılığı ile taşıdığınız verilerde , veriyi filitreleme işlemine tabii tutmadan çıplak hali ile , yani $_GET['id'] şeklinde kullanmayın. bu tarz kullanımlar scriptinizde açıklara neden olabilir.

    gelen verileri filitrelemek için mysql_real_escape_string ve htmlspecialchars fonksiyonlarından faydalanmaya azami gayret göstermeniz menfaatiniz icabındandır.
  • 14-08-2008, 22:54:23
    #6
    jagum adlı üyeden alıntı: mesajı görüntüle
    konu dışı : browser aracılığı ile taşıdığınız verilerde , veriyi filitreleme işlemine tabii tutmadan çıplak hali ile , yani $_GET['id'] şeklinde kullanmayın. bu tarz kullanımlar scriptinizde açıklara neden olabilir.
    gelen verileri filitrelemek için mysql_real_escape_string ve htmlspecialchars fonksiyonlarından faydalanmaya azami gayret göstermeniz menfaatiniz icabındandır.

    Doğrusu php de yeniyim siz değerli arkadaşlar sayesinde ilerlemeye çalışıyorum

    mysql_real_escape_string ve htmlspecialchars bunlarla ilgili okuyabileceğim bi makela vb varmı veya yapmam gereken ne ?

    en çok korktuğum şeyde bu açık
    ilgi ve alakanız için teşekkürler buda bu forumun farkı
  • 14-08-2008, 23:40:47
    #7
    Üyeliği durduruldu
    en basitinden şöyle bir şey kullanabilirsiniz;

    	$vid= (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
  • 14-08-2008, 23:47:38
    #8
    MC_delta_T adlı üyeden alıntı: mesajı görüntüle
    en basitinden şöyle bir şey kullanabilirsiniz;
    	$vid= (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
    $_GET yerine bu tur yerlerde $_POST kullansam bişi olurmu ?
    veya tüm boyle $_GET lerde
    	$vid= (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
    bunlarımı ekliyim

    bi soru yazılarda get le postun aynı işleye geldiğini gordum tam olarak aynı işlevimi goruyor ? get te yaptığın işlemi adres satırına yazıyor onu gordum
  • 14-08-2008, 23:57:49
    #9
    Üyeliği durduruldu
    get ile post metodunun adres satırında gözükme dışında bir farkı yok. dolayısıyla adres satırında gözüktüğü, daha doğrusu bilgiler adres satırından girilebildiği için standart dışı bilgilerin girilmesi daha kolay.

    ama post metodu kullansanız bile bu durumlar olabilir. en basitinden birisi kendisi sayfa oluşturup o şekilde standart dışı değişkenleri post edebilir. her halükarda sizin bu durumları göz önünde bulundurup gerekli hata/uyarı mesajlarını görüntületmeniz hatta bu gibi durumları kayıt altına almanız faydanızadır. (paranoyaklığın sınırı yok )

    benim verdiğim en basit korunma yöntemi. yerine ve ihtiyaca göre çok daha komplike kodlar hatta class lar bulunmakta. ama bu kod da yeterli güvenliği sağlar.