• 17-06-2019, 19:43:33
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Herkese hayırlı forumlar.

    Php öğrenmeye yeni başladım. Html üzerinden oluşturduğum bir templatei parçalayıp php uyumlu hale getirdim. Yine bir html admin templatei parçalayıp php uyumlu hale getirdim. Daha sonra kendi oluşturduğum templatei ve admin paneli db ye bağladım. Db deki verileri çekebiliyorum ancak update edemiyorm.

    bir adet process.php dosyam var. aşağıya bırakıyorum

    <?php  
    
    include 'connect.php';
    
    
    
    if(isset($_POST['savesettings'])) {
    
    
        $id=0;
    
        $savesettings=mysql_query("update settings set setting_title='".$_POST['setting_title']."',
            setting_description='".$_POST['setting_description']."',
            setting_keywords='".$_POST['setting_keywords']."',
            setting_facebook='".$_POST['setting_facebook']."',
            setting_twitter='".$_POST['setting_twitter']."',
            setting_instagram='".$_POST['setting_instagram']."',
            setting_footer='".$_POST['setting_footer']. "' where setting_id='$id'");
    
    
    
        if(mysql_affected_rows())
    
    
            { header("Location:../settings.php");}
    
    
        else {
    
            header("Location:../settings.php");
    }
    }
    
    
    ?>
    ve veritabanından update yapmak istediğim formun bulunduğu sayfa şudur

    <?php include 'header.php'; ?>
    
    
    <?php include 'sidebar.php'; ?>
    
    
    
    
    <div id="page-wrapper">
    <div id="page-inner">
    <div class="row">
    <div class="col-md-12">
    <h1 class="page-head-line">General Site Settings</h1>
    <h1 class="page-subhead-line">You can set your web-site settings. </h1>
    
    </div>
    </div>
    
    
    // FORM ALANI
    
    <form action="netting/process.php" method="POST">
        
         <div class="form-group col-md-12">
               <div class="form-group col-md-6">
               <label>Title</label>
               <input class="form-control" type="text" name="setting_title" placeholder=<?php echo $ayarcek['setting_title']; ?> >
         </div>
        </div>
         <div class="form-group col-md-12">
               <div class="form-group col-md-6">
               <label>Description</label>
               <input class="form-control" type="text" name="setting_description" placeholder=<?php echo $ayarcek['setting_description']; ?> >
         </div>
        </div>
         <div class="form-group col-md-12">
               <div class="form-group col-md-6">
               <label>Keywords</label>
               <input class="form-control" type="text" name="setting_keywords" placeholder=<?php echo $ayarcek['setting_keywords']; ?> >
         </div>
           </div>    
         <div class="form-group col-md-12">
               <div class="form-group col-md-12">
               <label>Footer</label>
               <input class="form-control" type="text" name="setting_footer" placeholder=<?php echo $ayarcek['setting_footer']; ?> >
         </div>
        
         <div class="form-group col-md-12">
    
         <div class="form-group col-md-3">
               <label>Facebook</label>
               <input class="form-control" type="text" name="setting_facebook" placeholder=<?php echo $ayarcek['setting_facebook']; ?> >
         </div>
    
         <div class="form-group col-md-3">
               <label>Twitter</label>
               <input class="form-control" type="text" name="setting_twitter" placeholder=<?php echo $ayarcek['setting_twitter']; ?> >
         </div>
    
         <div class="form-group col-md-3">
               <label>Instagram</label>
               <input class="form-control" type="text" name="setting_instagram" placeholder=<?php echo $ayarcek['setting_instagram']; ?> >
         </div>
    
         <div class="col-md-12">
    
               <div class="form-group col-md-6">
                   <input class="btn btn-success" type="submit" name="ayarguncelle" value="Save Settings">
               </div>
         </div>
    </form>
    
    
        
         </div>
        
    
    
    
    
    </div>
    
    </div>
    </div>
    </div>
    
    
    
    
    <?php include 'footer.php'; ?>
    process.php dosyamda hata var sanırım nerede yanlış yapıyorum sizce? Yardımcı olan herkese şimdiden teşekkür ederim.
  • 17-06-2019, 19:53:11
    #2
    Butonun name'i "ayarguncelle" iken islem.php de "savesettings" i isset fonksiyonuna sokup değer geliyor mu gelmiyor mu diye kontrol ediyorsun. Formun olduğu sayfadaki butonun name i savesettings yaparsan sorun hallolucak. Yarı ingilizce yarı türkçe kodlamışsın

    <input class="btn btn-success" type="submit" name="savesettings" value="Save Settings">
  • 17-06-2019, 19:55:47
    #3
    cinarenis adlı üyeden alıntı: mesajı görüntüle
    Butonun name'i "ayarguncelle" iken islem.php de "savesettings" i isset fonksiyonuna sokup değer geliyor mu gelmiyor mu diye kontrol ediyorsun. Formun olduğu sayfadaki butonun name i savesettings yaparsan sorun hallolucak. Yarı ingilizce yarı türkçe kodlamışsın

    <input class="btn btn-success" type="submit" name="savesettings" value="Save Settings">
    O düzgündü normalde en son farklı birşey deniyordum, şimdi tekrar düzelttim ancak aynı problem devam etmekte. Process.php de herhangi bir hata farkettiniz mi başka? mysql_query bölümü doğrumu? veritabanımdaki bilgilere göre düzenledim
  • 17-06-2019, 20:04:25
    #4
    taneryeke adlı üyeden alıntı: mesajı görüntüle
    O düzgündü normalde en son farklı birşey deniyordum, şimdi tekrar düzelttim ancak aynı problem devam etmekte. Process.php de herhangi bir hata farkettiniz mi başka? mysql_query bölümü doğrumu? veritabanımdaki bilgilere göre düzenledim
    Bir sorun göremedim fakat bağlandığın fonksiyon baya eskide kaldı sql injection açıkları var aşağıda vermiş olduğum kodları deneyip geri dönüş yaparsan çözüme bakalım.

    connect.php kendine göre düzenle.
    <?php
    $baglan = "localhost";
    $dbname = "veritabanı";
    $kullanici = "root";
    $parola = "parola";
    try {
    $db = new PDO("mysql:host=$baglan;dbname=$dbname;charset=utf8",$kullanici,$parola);
    } catch (PDOException $e) {
    echo $e->getMessage();
    }
    ?>
    process.php dosyası senin için düzenledim.
    <?php  
    include 'connect.php';
    
    if (isset($_POST['savesettings'])) {
    $ayarkaydet=$db->prepare("UPDATE settings SET
    setting_title=:setting_title,
    setting_description=:setting_description,
    setting_keywords=:setting_keywords,
    setting_facebook=:setting_facebook,
    setting_twitter=:setting_twitter,
    setting_instagram=:setting_instagram,
    setting_footer=:setting_footer,
    ayar_mesaj=:ayar_mesaj
    WHERE setting_id=0");
    $update=$ayarkaydet->execute(array(
    'setting_title' => $_POST['setting_title'],
    'setting_description' => $_POST['setting_description'],
    'setting_keywords' => $_POST['setting_keywords'],
    'setting_facebook' => $_POST['setting_facebook'],
    'setting_twitter' => $_POST['setting_twitter'],
    'setting_instagram' => $_POST['setting_instagram'],
    'setting_footer' => $_POST['setting_footer']
    ));
    
    if($update) {
    header("Location:../settings.php?durum=ok");
    } else {
    header("Location:../settings.php?durum=no");
    }
    }
    
    ?>
    Şu şekilde bir deneyip işlem sonucu adres çubuğundaki url e bak "durum=ok" mu dönmüş "durum=no" mu dönmüş.
  • 17-06-2019, 20:04:58
    #5
    Merhaba,

    Aşağıdaki gibi bağlantıyı sağlar mısınız
     $savesettings=mysql_query([COLOR=#E25041]$connection[/COLOR],"update settings set setting_title='".$_POST['setting_title']."',
            setting_description='".$_POST['setting_description']."',
            setting_keywords='".$_POST['setting_keywords']."',
            setting_facebook='".$_POST['setting_facebook']."',
            setting_twitter='".$_POST['setting_twitter']."',
            setting_instagram='".$_POST['setting_instagram']."',
            setting_footer='".$_POST['setting_footer']. "' where setting_id='$id'");
  • 17-06-2019, 20:12:55
    #6
    cinarenis adlı üyeden alıntı: mesajı görüntüle
    Bir sorun göremedim fakat bağlandığın fonksiyon baya eskide kaldı sql injection açıkları var aşağıda vermiş olduğum kodları deneyip geri dönüş yaparsan çözüme bakalım.

    connect.php kendine göre düzenle.
    <?php
    $baglan = "localhost";
    $dbname = "veritabanı";
    $kullanici = "root";
    $parola = "parola";
    try {
    $db = new PDO("mysql:host=$baglan;dbname=$dbname;charset=utf8",$kullanici,$parola);
    } catch (PDOException $e) {
    echo $e->getMessage();
    }
    ?>
    process.php dosyası senin için düzenledim.
    <?php
    include 'connect.php';
    
    if (isset($_POST['savesettings'])) {
    $ayarkaydet=$db->prepare("UPDATE settings SET
    setting_title=:setting_title,
    setting_description=:setting_description,
    setting_keywords=:setting_keywords,
    setting_facebook=:setting_facebook,
    setting_twitter=:setting_twitter,
    setting_instagram=:setting_instagram,
    setting_footer=:setting_footer,
    ayar_mesaj=:ayar_mesaj
    WHERE setting_id=0");
    $update=$ayarkaydet->execute(array(
    'setting_title' => $_POST['setting_title'],
    'setting_description' => $_POST['setting_description'],
    'setting_keywords' => $_POST['setting_keywords'],
    'setting_facebook' => $_POST['setting_facebook'],
    'setting_twitter' => $_POST['setting_twitter'],
    'setting_instagram' => $_POST['setting_instagram'],
    'setting_footer' => $_POST['setting_footer']
    ));
    
    if($update) {
    header("Location:../settings.php?durum=ok");
    } else {
    header("Location:../settings.php?durum=no");
    }
    }
    
    ?>
    Şu şekilde bir deneyip işlem sonucu adres çubuğundaki url e bak "durum=ok" mu dönmüş "durum=no" mu dönmüş.
    Teşekkür ederim, bu sefer

    Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:xampphtdocsdenemeadminheader.php on line 7


    Header de yazdığım kod;

    <?php
    
    
    include 'netting/connect.php';
    
    $ayarsor=mysql_query("select * from settings");
    $ayarcek=mysql_fetch_assoc($ayarsor);
    
    
    ?>
    burada nasıl bir düzenleme yapmam gerekiyor?
  • 17-06-2019, 20:19:00
    #7
    Mysql_query olan bağlantıları yukarıdaki yazdığım gibi prepare şeklinde kullan.mysql_fetch_assoc yazan yerleri de fetch(PDO::FETCH_ASSOC); şu şekilde kullan.

    yani senin hata veren kısımdaki 6. ve 7. satırı;

    $ayarsor=$db->prepare("SELECT * FROM settings");
    $ayarsor->execute();
    $ayarcek=$ayarsor->fetch(PDO::FETCH_ASSOC);
  • 17-06-2019, 20:28:00
    #8
    cinarenis adlı üyeden alıntı: mesajı görüntüle
    Mysql_query olan bağlantıları yukarıdaki yazdığım gibi prepare şeklinde kullan.mysql_fetch_assoc yazan yerleri de fetch(PDO::FETCH_ASSOC); şu şekilde kullan.

    yani senin hata veren kısımdaki 6. ve 7. satırı;

    $ayarsor=$db->prepare("SELECT * FROM settings");
    $ayarsor->execute();
    $ayarcek=$ayarsor->fetch(PDO::FETCH_ASSOC);
    evet hocam dediğiniz gibi yapınca hata düzeldi ancak durum=no verdi
  • 17-06-2019, 20:29:20
    #9
    Bir upload işim var 20-25 dk sonra özelden team at bakayım bi.