Canlı kontrol etmek gerekir kodları nerede sorun olduğun buna göre bulup eklemek gerekir.
Sorunu aşağıdaki kod sıralaması ile çözdüm, teşekkür ederim.
<?php
require_once('config.php');
// Initialize the session
session_start();
//print_r($_SESSION);
//yetki kontrolü yap
if($_SESSION['duyuru_yetki'] != "1"){
header('Location: ../login.php');
session_destroy();
}
//bugünki tarih
$currentDate = date('Y-m-d');
// Check if the user is logged in, otherwise redirect to login page
if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){
header("location: ../login.php");
exit;
}
$user_id = $_SESSION['id'];
ini_set('display_errors', 1); // Hata mesajlarını görüntülemeyi aktif hale getirin
error_reporting(E_ALL); // Tüm hata seviyelerini görüntüle
/* duyuru_duzenle.php üzerinden alınan veriler */
$title = trim($_POST['title']);
$body = trim($_POST['body']);
$category_id = trim($_POST['category_id']);
$created_user = $user_id; // Kullanıcının id'sini al
$json = array('email' => array('status' => false, 'msg' => ''), 'post' => array('status' => false, 'msg' => ''));
// Verileri veritabanına ekleyen SQL sorgusunu oluşturun
$sql = "INSERT INTO announcements (title, body, category_id, created_user) VALUES ('$title', '$body', '$category_id', '$user_id')";
// SQL sorgusunu çalıştırın
if (mysqli_query($conn, $sql)) {
// Sorgu başarıyla çalıştırıldıysa, post eklendi
$json['post']['status'] = true;
$json['post']['msg'] = 'Post eklendi';
} else {
// Sorgu çalıştırılamadıysa, hata mesajını yazdırın
$json['post']['msg'] = 'Post eklenemedi: ' . mysqli_error($conn);
exit(json_encode($json));
}
$sql = "SELECT id FROM announcements ORDER BY id DESC LIMIT 1";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$last_id = $row['id'];
// Formdan gönderilen verileri alın
/*$title = mysqli_real_escape_string($conn, $_POST['title']);
$body = mysqli_real_escape_string($conn, $_POST['body']);
$category_id = mysqli_real_escape_string($conn, $_POST['category_id']);
*/
$query = "SELECT * FROM categories WHERE id = $category_id";
$result2 = mysqli_query($conn, $query);
if (mysqli_num_rows($result) > 0) {
$row2 = mysqli_fetch_assoc($result2);
$category_name = $row2['name'];
}
/* Burada mail içeriği 500 karakterden uzunsa içeriği değiştiriyoruz.*/
$mail_uzunluk_kontrolu = $body;
$body_length = str_word_count($mail_uzunluk_kontrolu);
if($body_length > 500){
$mail_uzunluk_kontrolu = '
Bu duyuru içeriği karakter sınırını aştığı için Outlook üzerinde düzgün görüntülenememektedir.
</br>
</br>
<a href="https://cloud.*****.com.tr/duyuru/duyuru_oku.php?id='. $last_id .'" style="color:#000000;">Bu yazının tamamını buraya tıklayarak okuyabilirsiniz.</a>
';
}
$ozet = '
<html>
<!--[if mso]>
<style>
body,table tr,table td,a, span,table.MsoNormalTable { font-family:Arial, Helvetica, sans-serif !important; }
</style>
<!--<![endif]-->
<center><img style="text-align: center;" src="https://cloud.*****.com.tr/duyuru/assets/img/*****-logo-mail.png"></center>
<center><table>
<td valign="middle" align="center" style="width: 400px; padding-top: 20px;">
<h2 style="font-family: Arial;">['. $row2['name'] .'] '. $title .'</h2>
</td>
<td></td>
</table></center>
<center><table>
<td valign="middle" align="center" style="padding-top:20px; width: 400px;">
<p style="font-family: Arial;">'. $mail_uzunluk_kontrolu .'</p>
</td>
</table></center>
<center><table style="padding-top:20px; font-family: Arial; font-size:10px;">
<td valign="middle" align="center" style="width: 400px; font-family: Arial; font-size:10px;">
<a href="https://cloud.*****.com.tr/duyuru/duyuru_oku.php?id='. $last_id .'" style="color:#000000;">Bu yazı Outlook üzerinde düzgün görüntülenmiyor ise buraya tıklayarak Web üzerinden okuyabilirsiniz.</a>
</td>
</table></center>
<center><table style="font-family: Arial; font-size:10px;">
<td valign="middle" align="center" style="width: 400px; font-family: Arial; font-size:10px;">
<p>**Resimlerin tam boyutlu haline ulaşmak için üzerine tıklayabilirsiniz.</p>
</td>
</table></center>
</html>
';
// Import PHPMailer classes into the global namespace
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
// Include PHPMailer library files
require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';
//require 'index.php';
// Create an instance of PHPMailer class
$mail = new PHPMailer;
// UTF-8
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';
// SMTP configuration
//$mail->IsSMTP(); //Çalışmazsa etkinleştir.
$mail->Host = 'email.*****.com.tr';
$mail->SMTPAuth = true;
$mail->Username = '@*****.com.tr';
$mail->Password = '';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
// Sender info
$mail->setFrom('@*****.com.tr', '***** Duyuru Sistemi');
// Add a recipient
$mail->addAddress('tsonkaya@*****.com.tr');
//cc bölümü
//$mail->addCC('tsonkaya@*****.com.tr');
// Email subject
$mail->Subject = 'Duyuru: ['. $row2['name'] .'] '. $title .''; // İleti konusu
// Set email format to HTML
$mail->isHTML(true);
// Email body content
$mailContent = '';
$mail->Body = $ozet;
if(!$mail->send()) {
$json['email']['msg'] = 'E-posta gönderilemedi: ' . $mail->ErrorInfo;
} else {
$json['email']['status'] = true;
$json['email']['msg'] = 'E-posta başarıyla gönderildi.';
}
// Veritabanı bağlantısını kapatın
mysqli_close($conn);
header('Content-type: application/json');
exit(json_encode($json));
?>