• 29-12-2022, 15:41:01
    #10
    wehwet adlı üyeden alıntı: mesajı görüntüle
    Config.php dene var gelen post verileri bir yerde filtreliyorolabilir
    CKeditor config dosyasından bahsediyoruz sanırım, o dosyanın içeriği aşağıdaki gibi;
    /**
     * @license Copyright (c) 2003-2022, CKSource Holding sp. z o.o. All rights reserved.
     * For licensing, see [url]https://ckeditor.com/legal/ckeditor-oss-license[/url]
     */
    
    CKEDITOR.editorConfig = function( config ) {
        // Define changes to default configuration here.
        // For complete reference see:
        // [url]https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_config.html[/url]
    
        // The toolbar groups arrangement, optimized for two toolbar rows.
        config.toolbarGroups = [
            { name: 'clipboard',   groups: [ 'clipboard', 'undo' ] },
            { name: 'editing',     groups: [ 'find', 'selection', 'spellchecker' ] },
            { name: 'links' },
            { name: 'insert' },
            { name: 'forms' },
            { name: 'tools' },
            { name: 'document',       groups: [ 'mode', 'document', 'doctools' ] },
            { name: 'others' },
            '/',
            { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
            { name: 'paragraph',   groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] },
            { name: 'styles' },
            { name: 'colors' },
            { name: 'about' }
        ];
    
        // Remove some buttons provided by the standard plugins, which are
        // not needed in the Standard(s) toolbar.
        config.removeButtons = 'Underline,Subscript,Superscript';
    
        // Set the most common block elements.
        config.format_tags = 'p;h1;h2;h3;pre';
    
        // Simplify the dialog windows.
        config.removeDialogTabs = 'image:advanced;link:advanced';
    };
  • 29-12-2022, 15:46:17
    #11
    Yok, duyuru_ekleme_.islem php dosyasında bir config.php dosyasını require_once ile sayfaya dahil etmiş, Normalde burda posttan gelen verileri düzenlemesi gerekiyor ama gelen post verilerini sanırsam config.php dosyasında değişken atıyor, değişken atarken kıslatmış olabilir.

    Edit: birde listelediğin sayfayı da ekler misin?
  • 29-12-2022, 15:49:00
    #12
    wehwet adlı üyeden alıntı: mesajı görüntüle
    Yok, duyuru_ekleme_.islem php dosyasında bir config.php dosyasını require_once ile sayfaya dahil etmiş, Normalde burda posttan gelen verileri düzenlemesi gerekiyor ama gelen post verilerini sanırsam config.php dosyasında değişken atıyor, değişken atarken kıslatmış olabilir.

    Edit: birde listelediğin sayfayı da ekler misin?
    Orada öyle bir işlem yaptığımı düşünmüyorum, config dosyasını sadece DB bağlantısı yapmak için kullanıyorum.
    İçeriği aşağıdaki gibi;

    <?php
    
    $servername = "localhost";
    $username = "root";
    $password = "***";
    $dbname = "***";
    
    // Veritabanına bağlan
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    // Bağlantı kontrolü
    if ($conn->connect_error) {
        die("Bağlantı hatası: " . $conn->connect_error);
    } else {
        //echo "başarılı";
    }
    
    $servername2 = "localhost";
    $username2 = "root";
    $password2 = "***";
    $dbname2 = "***";
    
    $conn2 = new mysqli($servername2, $username2, $password2, $dbname2);
    
    if ($conn2->connect_error) {
    die("Bağlantı hatası: " . $conn2->connect_error);
    } else {
     //echo "başarılı";
    }
    
    ?>
  • 29-12-2022, 15:50:29
    #13
    turansonkaya adlı üyeden alıntı: mesajı görüntüle
    Orada öyle bir işlem yaptığımı düşünmüyorum, config dosyasını sadece DB bağlantısı yapmak için kullanıyorum.
    İçeriği aşağıdaki gibi;

    <?php
    
    $servername = "localhost";
    $username = "root";
    $password = "***";
    $dbname = "***";
    
    // Veritabanına bağlan
    $conn = new mysqli($servername, $username, $password, $dbname);
    
    // Bağlantı kontrolü
    if ($conn->connect_error) {
        die("Bağlantı hatası: " . $conn->connect_error);
    } else {
        //echo "başarılı";
    }
    
    $servername2 = "localhost";
    $username2 = "root";
    $password2 = "***";
    $dbname2 = "***";
    
    $conn2 = new mysqli($servername2, $username2, $password2, $dbname2);
    
    if ($conn2->connect_error) {
    die("Bağlantı hatası: " . $conn2->connect_error);
    } else {
     //echo "başarılı";
    }
    
    ?>
    Body verisini $body değişkenine nerde atıyorsun.
  • 29-12-2022, 15:57:01
    #14
    wehwet adlı üyeden alıntı: mesajı görüntüle
    Body verisini $body değişkenine nerde atıyorsun.
    Aşağıdaki AJAX kodu ile POST ettirip, duyuru_ekle_islem.php dosyasında işlem yapıyorum.

    <script>
        // Form submit olayına bir dinleyici ekleyin
        document.getElementById('post-form').addEventListener('submit', addAnnouncement);
     
     
     
        function addAnnouncement(e) {
          CKEDITOR.instances['body'].updateElement();
          // Form verilerini alın
          var title = document.getElementById('title').value;
          var body = document.getElementById('body').value;
          var category_id = document.getElementById('category_id').value;
     
          // Eğer title veya body boş ise, bir uyarı mesajı gösterin
          if (title == "" || body == "") {
            alert("Başlık ve içerik alanları boş bırakılamaz!");
            return;
          }
     
          // Ajax isteği oluşturun
              var xhr = new XMLHttpRequest();
              xhr.open('POST', 'duyuru_ekle_islem.php', true);
              xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
              xhr.onload = function() {
                if (this.status == 200) {
                  // Duyuru ekleme işleminin başarılı olup olmadığını kontrol edin
                  if (this.responseText == "Duyuru başarıyla eklendi") {
                    // Başarılı ise bir mesaj gösterin
                    alert("Duyuru başarıyla eklendi");
                  } else {
                    // Başarısız ise bir hata mesajı gösterin
                    alert("Hata: " + this.responseText);
                  }
                }
              }
     
          // Form verilerini gönderin
          var data = "title=" + title + "&body=" + body + "&category_id=" + category_id;
          xhr.send(data);
     
          e.preventDefault();
        }
    </script>
    Duyuru_ekle_islem.php;

    $sql = "INSERT INTO announcements (title, body, category_id) VALUES ('$title', '$body', '$category_id')";
    
    // SQL sorgusunu çalıştırın
    if (mysqli_query($conn, $sql)) {
      // Sorgu başarıyla çalıştırıldıysa, post eklendi
      echo 'Post eklendi';
    } else {
      // Sorgu çalıştırılamadıysa, hata mesajını yazdırın
      echo 'Post eklenemedi: ' . mysqli_error($conn);
    }
  • 29-12-2022, 15:59:31
    #15
    turansonkaya adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki AJAX kodu ile POST ettirip, duyuru_ekle_islem.php dosyasında işlem yapıyorum.

    <script>
        // Form submit olayına bir dinleyici ekleyin
        document.getElementById('post-form').addEventListener('submit', addAnnouncement);
     
     
     
        function addAnnouncement(e) {
          CKEDITOR.instances['body'].updateElement();
          // Form verilerini alın
          var title = document.getElementById('title').value;
          var body = document.getElementById('body').value;
          var category_id = document.getElementById('category_id').value;
     
          // Eğer title veya body boş ise, bir uyarı mesajı gösterin
          if (title == "" || body == "") {
            alert("Başlık ve içerik alanları boş bırakılamaz!");
            return;
          }
     
          // Ajax isteği oluşturun
              var xhr = new XMLHttpRequest();
              xhr.open('POST', 'duyuru_ekle_islem.php', true);
              xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
              xhr.onload = function() {
                if (this.status == 200) {
                  // Duyuru ekleme işleminin başarılı olup olmadığını kontrol edin
                  if (this.responseText == "Duyuru başarıyla eklendi") {
                    // Başarılı ise bir mesaj gösterin
                    alert("Duyuru başarıyla eklendi");
                  } else {
                    // Başarısız ise bir hata mesajı gösterin
                    alert("Hata: " + this.responseText);
                  }
                }
              }
     
          // Form verilerini gönderin
          var data = "title=" + title + "&body=" + body + "&category_id=" + category_id;
          xhr.send(data);
     
          e.preventDefault();
        }
    </script>
    Duyuru_ekle_islem.php;

    $sql = "INSERT INTO announcements (title, body, category_id) VALUES ('$title', '$body', '$category_id')";
    
    // SQL sorgusunu çalıştırın
    if (mysqli_query($conn, $sql)) {
      // Sorgu başarıyla çalıştırıldıysa, post eklendi
      echo 'Post eklendi';
    } else {
      // Sorgu çalıştırılamadıysa, hata mesajını yazdırın
      echo 'Post eklenemedi: ' . mysqli_error($conn);
    }
    Tamam hocam şimdi sen veriyi gönderirken post olarak gönderiyorusn duyuru_ekle_islem.php dosyasına buraya veri gelirken $_POST['body'] olarak gelir. sen bunu $body = $_POST['body'] olarak atama yapmıyor musun.
  • 29-12-2022, 16:02:05
    #16
    wehwet adlı üyeden alıntı: mesajı görüntüle
    Tamam hocam şimdi sen veriyi gönderirken post olarak gönderiyorusn duyuru_ekle_islem.php dosyasına buraya veri gelirken $_POST['body'] olarak gelir. sen bunu $body = $_POST['body'] olarak atama yapmıyor musun.
    Pardon, o bölümü eklememişim.
    Aşağıdaki gibi post ettiriyorum;
    $body = mysqli_real_escape_string($conn, $_POST['body']);
  • 29-12-2022, 16:10:51
    #17
    turansonkaya adlı üyeden alıntı: mesajı görüntüle
    Pardon, o bölümü eklememişim.
    Aşağıdaki gibi post ettiriyorum;
    $body = mysqli_real_escape_string($conn, $_POST['body']);
    Listelediğin sayfayıda ekler misin?
  • 29-12-2022, 16:20:11
    #18
    wehwet adlı üyeden alıntı: mesajı görüntüle
    Listelediğin sayfayıda ekler misin?
    Aşağıdaki kod ile başlıkları listeliyorum;

          // Veritabanındaki tüm duyuruları çekin
            $sql = "SELECT a.id, a.title, a.body, a.created_at, c.name FROM announcements a
                    JOIN categories c ON a.category_id = c.id
                    WHERE a.archived = 0
                    ORDER BY a.created_at DESC
                    LIMIT 5;";
              $result = mysqli_query($conn, $sql);
    
                $counter = 0;
                while ($row = mysqli_fetch_assoc($result)) {
                  $counter++;
                  if ($counter > 0 ) {
                    // Bu, son eklenen duyurudur
                    $createdAt = new DateTime($row['created_at']);
                    $createdAt->add(new DateInterval('PT6H')); // Tarihe 6 saat ekleyin
                    $now = new DateTime();
                    if ($now <= $createdAt) {
                      // Eğer şu anki tarih, duyurunun eklendiği tarihten 6 saat sonrasına eşit veya daha ilerisi değilse, duyurunun rengini değiştirin
                      echo "<p class='blink' style='margin-top:20px;'><img style='width:30px; height:30px; margin-right:5px;' src='assets/img/kategori-icon/" . $row['name'] . ".png'><a style='color:red; padding:5px;' href='duyuru_oku.php?id=" . $row['id'] . "'>[" . $row['name'] . "] " . $row['title'] . "</a></p>";
                    } else {
                      // Eğer şu anki tarih, duyurunun eklendiği tarihten 6 saat sonrasına eşit veya daha ilerisi ise, duyurunun rengini değiştirmeyin
                      echo "<p style='margin-top:20px;'><img style='width:30px; height:30px; margin-right:5px;' src='assets/img/kategori-icon/" . $row['name'] . ".png'><a style='padding:5px;' href='duyuru_oku.php?id=" . $row['id'] . "'>[" . $row['name'] . "] " . $row['title'] . "</a></p>";
                    }
                  } else {
                    // Diğer duyurular
                    echo "<p style='margin-top:20px;'><img style='width:30px; height:30px; margin-right:5px;' src='assets/img/kategori-icon/" . $row['name'] . ".png'><a style='padding:5px;' href='duyuru_oku.php?id=" . $row['id'] . "'>[" . $row['name'] . "] " . $row['title'] . "</a></p>";
                  }
                }
    Kullanıcı başlığa tıkladığı zaman içeriğin tamamını okuması için sayfa: duyuru_oku.php

      <?php
    
        if ($result) {
          // Duyuru çekildi
          $row = mysqli_fetch_assoc($result);
          if ($row['archived'] == 0) {
            // Duyuru arşivlenmemiş, detayları yazdırın
            echo "<p>" . $row['body'] . "</p>";
            echo '<p>' . htmlspecialchars($row['body']) . '</p>';
          } else {
            // Duyuru arşivlenmiş, uyarı mesajı yazdırın
            echo "Bu duyuru arşivlenmiştir.";
          }
        } else {
          // Sorgu başarısız ise hata mesajını yazdırın
          echo "Hata: " . mysqli_error($conn);
        }
    
      ?>