Хочу сделать чтобы в почте можно было сделать ставить реакции на сообщения. С помощью JS вот сам обработчик
но и сам js
а мне в консоле пишет
index.php?act=write&id=5:605 Сервер прислал кашу вместо success. Проверьте начало PHP файла. и в базу ничего не пишет то есть таблицу создал но там пусто
function sendReaction(msgId, emoji) {
console.log("Попытка отправить реакцию:", msgId, emoji);
// Берем ID из текущего URL, чтобы не ошибиться
var urlParams = new URLSearchParams(window.location.search);
var userId = urlParams.get('id');
$.ajax({
url: 'index.php?act=reaction&id=' + userId,
type: 'POST',
data: {
msg_id: msgId,
type: emoji
},
success: function(data) {
console.log("Чистый ответ сервера:", data);
if (data.trim() === 'success') {
if (typeof updateChat === "function") updateChat();
} else {
console.error("Сервер прислал кашу вместо success. Проверьте начало PHP файла.");
}
},
error: function(xhr) {
console.error("Ошибка сети:", xhr.status);
}
});
}
if (isset($_GET['act']) && $_GET['act'] == 'reaction') { while (ob_get_level()) ob_end_clean(); if ($systemUser->isV
alid()) { $msg_id = isset($_POST['msg_id']) ? intval($_POST['msg_id']) : 0; $type = isset($_POST['type']) ? $_POST['type'] : ''; $allowed = ['👍', '🔥', '🚀', '❤️', '😂']; if ($msg_id > 0 && in_array($type, $allowed)) { $stmt = $db->prepare("SELECT id, type FROM `cms_mail_reactions` WHERE `message_id` = ? AND `user_id` = ?"); $stmt->execute([$msg_id, $systemUser->id]); $res = $stmt->fetch(); if ($res) { if ($res['type'] === $type) { $db->prepare("DELETE FROM `cms_mail_reactions` WHERE `id` = ?")->execute([$res['id']]); } else { $db->prepare("UPDATE `cms_mail_reactions` SET `type` = ? WHERE `id` = ?")->execute([$type, $res['id']]); } } else { $db->prepare("INSERT INTO `cms_mail_reactions` (`message_id`, `user_id`, `type`) VALUES (?, ?, ?)") ->execute([$msg_id, $systemUser->id, $type]); } header('Content-Type: text/plain; charset=utf-8'); echo 'success'; exit; } } exit; }
01.04.2026 16:46
все решил )))) спасибо за внимание ))))