Merhabalar,
Bir duyuru sistemi yazıyorum.
Bu sistemde bulunan "Duyuru Ekle" bölümünde CKeditor kullanıyorum fakat şu şekilde saçma bir sorun ile karşı karşıyayım.
Editöre yazdığım içerik sadece belli bir kısmını yazıp, veritabanına kaydediyor. Diğer kısımlar nereye gidiyor, nereye uçuyor anlamadım.
"tail -f" ile error.log dosyasını takip ettiğimde anlık olarak bir hata düştüğünüde göremiyorum.
Soruna ait 20 saniyelik bir video var izlerseniz daha detaylı olarak anlayacaksınız;
https://disk.yandex.com.tr/i/LrgmBobxrp_9uA
Bu içeriği şu kod ile gönderiyorum;
Bir duyuru sistemi yazıyorum.
Bu sistemde bulunan "Duyuru Ekle" bölümünde CKeditor kullanıyorum fakat şu şekilde saçma bir sorun ile karşı karşıyayım.
Editöre yazdığım içerik sadece belli bir kısmını yazıp, veritabanına kaydediyor. Diğer kısımlar nereye gidiyor, nereye uçuyor anlamadım.
"tail -f" ile error.log dosyasını takip ettiğimde anlık olarak bir hata düştüğünüde göremiyorum.
Soruna ait 20 saniyelik bir video var izlerseniz daha detaylı olarak anlayacaksınız;
https://disk.yandex.com.tr/i/LrgmBobxrp_9uA
Bu içeriği şu kod ile gönderiyorum;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ENTES | Duyuru Yönetimi</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
<script type="text/javascript" src="https://cloud.entes.com.tr/test_turan/duyuru/assets/ckeditor/ckeditor.js"></script>
<script type="text/javascript" src="https://cloud.entes.com.tr/test_turan/duyuru/assets/ckfinder/ckfinder.js"></script>
</head>
<body>
<?php
require_once('config.php');
include('../bolumler/menu.php');
?>
<div class="container">
<form id="post-form">
<label for="title">Başlık:</label><br>
<input class="form-control" type="text" id="title" name="title"><br>
<label for="body">İçerik:</label><br>
<textarea id="body" name="body"></textarea>
</br>
<label>Departman:</label>
<?php
$sql = "SELECT c.id, c.name
FROM categories c
INNER JOIN user_category_access uca ON c.id = uca.category_id
WHERE uca.user_id = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $user_id);
$stmt->execute();
$result = $stmt->get_result();
echo '<select class="form-select" id="category_id" name="category_id">';
while ($row = $result->fetch_assoc()) {
echo '<option value="' . $row['id'] . '">' . $row['name'] . '</option>';
}
echo '</select>';
?>
<input class="btn btn-success" type="submit" name="submit" value="Ekle">
</form>
<!-- Düzenleme formunu gizli -->
<form id="edit-announcement-form" style="display:none;">
<!-- Düzenlenecek duyurunun ID'sini tutan bir gizli alan ekleyin -->
<input type="hidden" id="edit-announcement-id">
<!-- Düzenlenecek duyurunun başlığını gösteren bir alan ekleyin -->
<label for="edit-title">Başlık:</label>
<input type="text" id="edit-title">
<!-- Düzenlenecek duyurunun içeriğini gösteren bir alan ekleyin -->
<label for="edit-content">İçerik:</label>
<textarea id="edit-content"></textarea>
<!-- Düzenleme işlemini tamamlamak için bir düğme ekleyin -->
<button type="submit">Düzenle</button>
</form>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<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 dosya içeriğim;<?php
require_once('config.php');
if(!$mail->send()) {
// E-posta gönderilemedi
echo 'E-posta gönderilemedi: ' . $mail->ErrorInfo;
} else {
// E-posta başarıyla gönderildi
echo 'E-posta başarıyla gönderildi.';
}
// Verileri veritabanına ekleyen SQL sorgusunu oluşturun
$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);
}
// Veritabanı bağlantısını kapatın
mysqli_close($conn);
?>

