File size: 6.55Kb
<?
include_once '../../sys/inc/start.php';
include_once '../../sys/inc/compress.php';
include_once '../../sys/inc/sess.php';
include_once '../../sys/inc/home.php';
include_once '../../sys/inc/settings.php';
include_once '../../sys/inc/db_connect.php';
include_once '../../sys/inc/ipua.php';
include_once '../../sys/inc/fnc.php';
include_once '../../sys/inc/user.php';
/* Бан пользователя */
if (isset($user) && mysql_result(mysql_query("SELECT COUNT(*) FROM `ban` WHERE `razdel` = 'mini_chat' AND `id_user` = '$user[id]' AND (`time` > '$time' OR `view` = '0')"), 0) != 0){
header('Location: /user/ban.php?'.SID);
exit;
}
//Очищаем уведомления об ответах
if (isset($user))
mysql_query("UPDATE `notification` SET `read` = '1' WHERE `type` = 'mini_chat' AND `id_user` = '$user[id]'");
//Действия с комментариями
include 'inc/admin_act.php';
//Отправка комментариев
if (isset($_POST['msg']) && isset($user)){
$msg = $_POST['msg'];
$mat = antimat($msg);
if ($mat)$err[] = 'В тексте сообщения обнаружен мат: ' . $mat;
if (strlen2($msg) > 1024){ $err[] = 'Сообщение слишком длинное'; }
elseif (strlen2($msg) < 2){ $err[] = 'Короткое сообщение'; }
elseif (mysql_result(mysql_query("SELECT COUNT(*) FROM `mini_chat` WHERE `id_user` = '$user[id]' AND `msg` = '".my_esc($msg)."' LIMIT 1"),0) != 0)
{
$err = 'Ваше сообщение повторяет предыдущее';
}
elseif(!isset($err))
{
/*
==========================
Уведомления об ответах
==========================
*/
if (isset($ank_reply['id']))
{
$notifiacation = mysql_fetch_assoc(mysql_query("SELECT * FROM `notification_set` WHERE `id_user` = '" . $ank_reply['id'] . "' LIMIT 1"));
if ($notifiacation['komm'] == 1 && $ank_reply['id'] != $user['id'])
mysql_query("INSERT INTO `notification` (`avtor`, `id_user`, `type`, `time`) VALUES ('$user[id]', '$ank_reply[id]', 'mini_chat', '$time')");
}
mysql_query("INSERT INTO `mini_chat` (id_user, time, msg) values('$user[id]', '$time', '" . my_esc($msg) . "')");
header ("Location: index.php" . SID);
exit;
}
} elseif (!isset($user) && isset($set['write_mini_chat']) && $set['write_mini_chat'] == 1 && isset($_SESSION['captcha']) && isset($_POST['chislo'])) {
$msg = $_POST['msg'];
$mat = antimat($msg);
if ($mat) {
$err[] = 'В тексте сообщения обнаружен мат: '.$mat;
}
if (strlen2($msg) > 1024) {
$err = 'Сообщение слишком длинное';
} elseif ($_SESSION['captcha'] != $_POST['chislo']) {
$err = 'Неверное проверочное число';
} elseif (isset($_SESSION['antiflood']) && $_SESSION['antiflood'] > $time - 300) {
$err = 'Для того чтобы чаще писать нужно авторизоваться';
} elseif (strlen2($msg) < 2) {
$err = 'Короткое сообщение';
} elseif (mysql_result(mysql_query("SELECT COUNT(*) FROM `mini_chat` WHERE `id_user` = '0' AND `msg` = '".my_esc($msg)."' LIMIT 1"),0) != 0) {
$err = 'Ваше сообщение повторяет предыдущее';
} elseif(!isset($err)) {
$_SESSION['antiflood'] = $time;
mysql_query("INSERT INTO `mini_chat` (id_user, time, msg) values('0', '$time', '".my_esc($msg)."')");
$_SESSION['message'] = 'Сообщение успешно добавлено';
header ("Location: index.php" . SID);
exit;
}
}
// заголовок страницы
$set['title'] = 'Общий чат';
include_once '../../sys/inc/thead.php';
title();
aut();
err();
$k_post = mysql_result(mysql_query("SELECT COUNT(id) FROM `mini_chat`"), 0);
$k_page = k_page($k_post, $set['p_str']);
$page = page($k_page);
$start = $set['p_str'] * $page - $set['p_str'];
// Форма для комментариев
if (isset($user) || (isset($set['write_mini_chat']) && $set['write_mini_chat'] == 1 && (!isset($_SESSION['antiflood']) || $_SESSION['antiflood'] < $time - 300))){
echo '<table class="menu">';
echo '<form method="post" name="message" action="?page=' . $page . REPLY . '">';
?><td width="1"><a style="background: #ffffff; color: #4686a0; font-size: 25px;" class="button_icon" href="#" onclick="$('.smile').toggle();return false;"><i class="far fa-smile"></i></a></td><?
echo '<td><textarea class="chat" placeholder="Введите сообщение..." name="msg">' . $insert . '</textarea></td>';
echo '<td><input id="go" value="" type="submit" /></td>';
echo '</form>';
echo '</table>';
include '../../modules/smiles/smile.php';
} elseif (!isset($user) && isset($set['write_mini_chat']) && $set['write_mini_chat'] == 1) {
?><div class="mess">Вы сможете писать через <span class="on"><?= abs($time - $_SESSION['antiflood'] - 300)?> сек.</span></div><?
}
echo '<table class="post">';
if ($k_post == 0){
echo '<div class="menu">Нет сообщений</div>';
}
$q = mysql_query("SELECT * FROM `mini_chat` ORDER BY id DESC LIMIT $start, $set[p_str]");
while ($post = mysql_fetch_assoc($q)){
$ank = mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = $post[id_user] LIMIT 1"));
echo '<table class="menu">';
echo '<td class="block_avatar">';
if (isset($user)){echo '<a href="?page=' . $page . '&response=' . $ank['id'] . '">';}
echo ''.avatar($ank['id']).'</a><span class="avatar_icon">'.online($ank['id']).'</span>';
echo '</td>';
echo '<td class="block_content_msg">';
echo ''.user::nick($ank['id']).'';
echo '<span class="time">' . vremja($post['time']) . '</span>';
echo '<div class="msg_text">' . output_text($post['msg']) . '</div>';
if (isset($user) && ($user['level'] > $ank['level'] || $user['level'] != 0 && $user['id'] == $ank['id']) && user_access('mini_chat_delete')) {
echo '<span style="float:right;margin: -10px 0 0 0;"><a href="?del='.$post['id'].'&page='.$page.'"><img src="/img/open.png"></a></span>';
if ($post['id'] == $_GET['del']) {
echo '<span style="float: right; margin: -8px 10px 0 0;"><a href="delete.php?id=' . $post['id'] . '"><i style="color:#aebdcc;" class="fas fa-times"></i></a></span>';
}
}
echo '</td>';
echo '</table>';
}
echo '</table>';
if ($k_page > 1)str('index.php?', $k_page, $page); // Вывод страниц
//Форма очистки комментов
include 'inc/admin_form.php';
include_once '../../sys/inc/tfoot.php';
?>