Вход Регистрация
Файл: pages/mini_chat/index.php
Строк: 305
<?php

define
('H', $_SERVER['DOCUMENT_ROOT'] . '/');
include_once 
H . 'sys/inc/start.php';
include_once 
H . 'sys/inc/compress.php';
include_once 
H . 'sys/inc/sess.php';
include_once 
H . 'sys/inc/settings.php';
include_once 
H . 'sys/inc/db_connect.php';
include_once 
H . 'sys/inc/ipua.php';
include_once 
H . 'sys/inc/fnc.php';
include_once 
H . 'sys/inc/user.php';
#подключаем языковой пакет
lang::start('mini_chat');

$set['title'] = lang('Мини чат');
include_once 
H . 'sys/inc/thead.php';

title();
aut();

if (
$_SERVER['REQUEST_URI'] != '/pages/mini_chat/?refresh') {
    
$_SESSION['page_m'] = $_SERVER['REQUEST_URI'];
}

if (isset(
$_GET['refresh'])) {
    
header("Location: " . $_SESSION['page_m']);
}

if (isset(
$_POST['msg']) && isset($user)) {
    
$msg = $_POST['msg'];

    if (isset(
$_POST['translit']) and $_POST['translit'] == 1) {
        
$msg = translit($msg);
    }

    
$mat = antimat($msg);

    if (
$mat) {
        
$err[] = lang('В тексте сообщения обнаружен мат:') . $mat;
    }
    if (
strlen2($msg) > $set['guest_max_post']) {
        
$err[] = lang('Сообщение слишком длинное');
    } elseif (
strlen2($msg) < 2/* or strlen2($msg) == null */) {
        
$err[] = lang('Короткое сообщение');
    } elseif (
mysql_result(query("SELECT COUNT(*) FROM `guest` WHERE `id_user` = '" . $user['id'] . "' AND `msg` = '" . my_esc($msg) . "' AND `time` > '" . (time() - 60) . "' LIMIT 1"), 0) != 0) {
        
$err = lang('Ваше сообщение повторяет предыдущее');
    } else if (!isset(
$err)) {
        
#вычисляем рейтинг за сообщение
        
$rating_add_msg = rating::msgnum($msg);
        
#суммируем
        
$add_rating = ($rating_add_msg + 0.01);
        
#добавляем рейтинг
        
rating::add($user['id'], $add_rating, 1, null, 'mini_chat');

        
mysql_query("INSERT INTO `guest` (id_user, `time`, msg) VALUES('" . $user['id'] . "', '" . $time . "', '" . my_esc($msg) . "')");
        
mysql_query("UPDATE `user` SET `balls` = '" . ($user['balls'] + $set['balls_guest']) . "' WHERE `id` = '" . $user['id'] . "' LIMIT 1");
        
$_SESSION['message'] = lang('Сообщение успешно добавлено');
        exit(
header("Location: ?"));
    }
} elseif (isset(
$_POST['msg']) && !isset($user) && isset($set['write_guest']) && $set['write_guest'] == 1 && isset($_SESSION['captcha']) && isset($_POST['chislo'])) {
    
$msg = mysql_real_escape_string($_POST['msg']);

    if (isset(
$_POST['translit']) && $_POST['translit'] == 1) {
        
$msg = translit($msg);
    }
    
$mat = antimat($msg);
    if (
$mat) {
        
$err[] = lang('Обнаружен мат') . ': ' . $mat;
    }
    if (
strlen2($msg) > 1024) {
        
$err = lang('Сообщение слишком длинное');
    } elseif (
$_SESSION['captcha'] != $_POST['chislo']) {
        
$err = lang('Неверное проверочное число');
    } elseif (isset(
$_SESSION['antiflood']) && $_SESSION['antiflood'] > $time - 300) {
        
$err = lang('Для того чтобы чаще писать нужно авторизоваться');
    } elseif (
strlen2($msg) < 2) {
        
$err = lang('Короткое сообщение');
    }
    if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `guest` WHERE `id_user` = '" . $user['id'] . "' AND `msg` = '" . $msg . "' AND `time` > '" . (time() - 60) . "' LIMIT 1"), 0) != 0) {
        
$err = lang('Ваше сообщение повторяет предыдущее');
    } elseif (!isset(
$err)) {
        
$_SESSION['antiflood'] = $time;
        
mysql_query("INSERT INTO `guest` (id_user, `time`, msg) VALUES('0', '" . time() . "', '[i](IP:" . $_SERVER['REMOTE_ADDR'] . ")[/i]" . $msg . "')");
        
msg(lang('Успешно'));
    }
}

err();
switch (empty(
$_GET['type']) ? false : $_GET['type']) {
    default:
        if (
user_access('guest_clear')) {
            echo 
"<div class='list-group-item'><a href='?type=deletmessages'><span class='fa fa-trash-o'></span> " . lang('Полная очистка мини чата') . "</a></div>" . PHP_EOL;
        }
        echo 
'<div class="list-group-item"><a href="?type=who">' . lang('Кто в чате?') . '</a> :: <a href="?refresh">' . lang('Обновить') . '</a></div>';

        if (isset(
$user) || (isset($set['write_guest']) && $set['write_guest'] == 1)) {
            
panel_form::head();
            
            echo 
'<div class="list-group-item">' . PHP_EOL;
            if (isset(
$user) || (isset($set['write_guest']) && $set['write_guest'] == 1 && (!isset($_SESSION['antiflood']) || $_SESSION['antiflood'] < time() - 300))) {
                echo 
'<form method="post" name="message" action="?' . $passgen . '">' . PHP_EOL;
                echo 
lang('Сообщение') . ":<br /><textarea class='form-control' name='msg'></textarea><br />" . PHP_EOL;
                if (isset(
$user) && $user['set_translit'] == 1) {
                    echo 
"<label class='c-input c-checkbox'><input type='checkbox' name='translit' value='1' /><span class='c-indicator'></span> " . lang('Транслит') . "</label><br />" . PHP_EOL;
                }
                if (!isset(
$user)) {
                    echo 
'<img src="/captcha.php?SESS=' . $sess . '" width="100" height="30" alt="captcha" /><br />
                    <input name="chislo" size="5" maxlength="5" value="" type="text" /><br />' 
. PHP_EOL;
                }
                echo 
"<button class='btn btn-success'>" . lang('Отправить') . "</button>" . PHP_EOL;
                echo 
'</form>' . PHP_EOL;
            } elseif (isset(
$set['write_guest']) && $set['write_guest'] == 1 && isset($_SESSION['antiflood']) && $_SESSION['antiflood'] > time() - 300) {
                echo 
'<div class="list-group-item">' . PHP_EOL;
                echo 
'* ' . lang('Гостем вы можете писать только по 1 сообщению в 5 минут') . '<br />' . PHP_EOL;
                echo 
'</div>' . PHP_EOL;
            }
            echo 
'</div>' . PHP_EOL;
            
panel_form::foot();
        }

        
$k_post = mysql_result(query("SELECT COUNT(*) FROM `guest`"), 0);
        
$k_page = k_page($k_post, $set['p_str']);
        
$page = page($k_page);
        
$start = $set['p_str'] * $page - $set['p_str'];

        if (
$k_post == 0) {
            echo 
'<div class="list-group-item">' . lang('Тут никто, ничего, еще не писал') . '</div>';
        }

        echo 
'<table summary="table" class="list-group-item" class="post"><tr>' . PHP_EOL;

        
$q = query("SELECT a . * , b.id AS id_u, b.nick, b.pol, b.level, COUNT( c.id_user ) ban FROM `guest` a LEFT JOIN user b ON a.id_user = b.id LEFT JOIN ban c ON b.id = c.id_user AND c.`time` > " . time() . " GROUP BY a.id ORDER BY a.id DESC LIMIT " . $start . ", " . $set['p_str']);
        
$z = 2;

        while (
$post = mysql_fetch_assoc($q)) {

            if (
$post['id_user'] == 0) {
                
$post['id_u'] = 0;
                
$post['pol'] = 'guest';
                
$post['level'] = 0;
            }
            if (
$set['avatar_show'] == 1) {
                echo 
'<td class="icon14">' . PHP_EOL;
                
avatar($post['id_u'], 50, 50);
                echo 
'</td>' . PHP_EOL;
            }
            echo 
'<td class="null">' . PHP_EOL;
            ++
$z;

            if (
$post['id_u'] == 0) {
                echo 
lang('Гость') . ' (' . date::time($post['time']) . ')' . PHP_EOL;
            } else {
                echo 
nick($post['id_u']) . " <span title='" . date::time($post['time']) . "' style='color:grey;'>" . date::timek($post['time']) . "</span> <br />" . PHP_EOL;
            }
            echo (
user_access('guest_delete') ? "<a href='?type=delete&amp;id=$post[id]' style='float:right;'> <span class='fa fa-trash-o'></span> </a>" : false) . " " . PHP_EOL;
            
#-----------------------------------------#
            //Блокируем сообщение если человек в бане
            
if (/* count::query('ban', "`id_user` = '" . $post['id_u'] . "' AND `time` > " . time()) == 0 */$post['ban'] == 0 &&
                    
$set['msg_ban_set'] == 1) {
                echo 
output_text($post['msg']);
                if (isset(
$user) && $user['id'] != $post['id_user']) {
                    echo 
"<span style='float:right;'> <a href='?type=otvet&amp;id=$post[id]' title='" . lang('Ответить') . "'> <span class='fa fa-pencil'></span> </a> " . ($user['level'] < 1 && $ank['level'] < 1 ? " <a href='?type=jaloba&amp;id=$post[id]' title='" . lang('Жалоба') . "'> <span class='fa fa-flag'></span> </a></span> " : false);
                }
            } else {
                echo (
$user['group_access'] >= 1 ? '<span style="color:red">' . $set['msg_ban'] . '</span> : <br />' . output_text($post['msg']) : $set['msg_ban']);
            }
            
#-----------------------------------------#
            
echo '</td></tr>' . PHP_EOL;
        }
        echo 
'</table>';
        if (
$k_page > 1) {
            
str('?', $k_page, $page);
        }
        break;
    case 
'otvet':
        if (!isset(
$user)) {
            
$_SESSION['message'] = lang('Доступ закрыт');
            exit(
header('Location: ?'));
        }
        
$q = query("SELECT A.*, B.id AS id_u, B.nick, B.group_access FROM `guest` A LEFT JOIN user B ON A.id_user = B.id WHERE A.id = " . intval($_GET['id']));
        
$post = mysql_fetch_assoc($q);

        if (
$post['id_user'] == 0) {
            
$post['id_u'] = 0;
            
$post['pol'] = 'guest';
            
$post['nick'] = lang('Гость');
        }
        
//$ank = get_user($post['id_user']);
        
if ($user['id'] != $post['id_user']) {
            if (isset(
$_POST['save'])) {
                
$msg = $post['msg'] . '
--------
                ' 
. mysql_real_escape_string($_POST['jaloba_msg']);
                
mysql_query("INSERT INTO `guest` (`id_user` ,`time` ,`msg`) VALUES ('" . $user['id'] . "',  '" . time() . "',  '" . $msg . "');");
                if (
$post['id_u'] != $user['id'] && $post['id_u'] !== 0) {// у гостя нет журнала
                    
mysql_query("INSERT INTO `jurnal` (`id_user`, `id_kont`, `msg`, `time`, `type`) VALUES('0', '" . $post['id_u'] . "', '" . $user['nick'] . " Ответил на ваше сообщение " . $msg . " [url=/pages/mini_chat/?type=post&amp;id=" . $post['id'] . "]Подробнее[/url]', '" . time() . "', 'my_chat')");
                }
                
$_SESSION['message'] = lang('Успешно');
                exit(
header('Location: ?'));
            }
        }
        echo 
'
    <div class="list-group-item">' 
. PHP_EOL . '
    <div class="list-group-item">' 
. PHP_EOL . ' ' . output_text($post['msg']) . '</div>
    ' 
. PHP_EOL . '
    <a href="?type=otvet&amp;id=' 
. $post['id'] . '"> ' . lang('Ответ') . '</a> - ' . ($post['group_access'] <= 1 ? '<a href="?type=jaloba&amp;id=' . $post['id'] . '"> ' . lang('Жалоба') . '</a>' : false) . ' - <a href="?"><span class="fa fa-arrow-left fa-fw"></span> ' . lang('Назад') . '</a>
    </div>' 
. PHP_EOL;

        echo 
"<form method='post' class='list-group-item' action=''>" . PHP_EOL;
        echo 
lang('Ответ') . ':<br /><textarea name="jaloba_msg" class="form-control">' . $post['nick'] . ', </textarea><br />' . PHP_EOL;
        if (isset(
$user) && $user['set_translit'] == 1) {
            echo 
"<label class='c-input c-checkbox'><input type='checkbox' name='translit' value='1' /><span class='c-indicator'></span> " . lang('Транслит') . "</label><br />" . PHP_EOL;
        }
        echo 
"<button name='save' class='btn btn-success'>" . lang('Отправить') . "</button>" . PHP_EOL . "<a class='btn btn-secondary' href='?type=post&amp;id=$post[id]'> " . lang('Отмена') . "</a>" . PHP_EOL;
        echo 
'</form>' . PHP_EOL;
        break;
    case 
'post':
        
$q = query("SELECT id, msg FROM `guest` WHERE id = " . intval($_GET['id']));
        
$post = mysql_fetch_assoc($q);
        echo 
'
    <div class="list-group-item">' 
. PHP_EOL . '
    <div class="list-group-item">' 
. PHP_EOL . output_text($post['msg']) . '</div>
    ' 
. PHP_EOL . '<a href="?type=otvet&amp;id=' . $post['id'] . '"> ' . lang('Ответ') . '</a> - ' . ($user['level'] < 1 ? '<a href="?type=jaloba&amp;id=' . $post['id'] . '"> ' . lang('Жалоба') . '</a></span>' : false) . '
    <a href="?"><span class="fa fa-arrow-left fa-fw"></span> ' 
. lang('Назад') . '</a>
    </div>' 
. PHP_EOL;
        break;
    case 
'jaloba':
        if (!isset(
$user)) {
            
$_SESSION['message'] = lang('Доступ закрыт');
            exit(
header('Location: ?'));
        }
        
$q = query("SELECT * FROM `guest` WHERE id = " . intval($_GET['id']));
        
$post = mysql_fetch_assoc($q);
        if (
$user['id'] != $post['id_user']) {
            if (isset(
$_POST['save'])) {
                
$msg = mysql_real_escape_string($_POST['jaloba_msg']);
                
$prich = lang('Категория') . ' = ' . mysql_real_escape_string($_POST['prich']);
                
$msg .= ' ' . lang('Подана жалоба на сообщение') . ' [url=/pages/mini_chat/?type=post&id=' . intval($_GET['id']) . ']' . $post['msg'] . '[/url]';
                
mysql_query("INSERT INTO `jurnal_system` (`time` ,`type` ,`read` ,`id_user`,`msg`,`id_kont`) VALUES ( '" . time() . "',  'spam_chat',  '0',  '" . $post['id_user'] . "','" . $msg . ' ' . $prich . "','" . $user['id'] . "');");
                
$_SESSION['message'] = lang('Успешно');
                exit(
header('Location: ?'));
            }
            echo 
'
    <div class="list-group-item">' 
. PHP_EOL .
            
lang('Вы пытаетесь подать жалобу на сообщение') . ' : <br />
    <div class="list-group-item">' 
. PHP_EOL .
            
output_text($post['msg']) . '
    </div>
    </div>' 
. PHP_EOL;
            echo 
'<div class="list-group-item">' . PHP_EOL;
            echo 
'<form method="post" action="">' . PHP_EOL;
            echo 
lang('Комментарий') .
            
':<br /><textarea name="jaloba_msg" class="form-control"></textarea><br />' . PHP_EOL;
            if (isset(
$user) && $user['set_translit'] == 1) {
                echo 
'<label class="c-input c-checkbox"><input type="checkbox" name="translit" value="1" /><span class="c-indicator"></span> ' . lang('Транслит') . '</label><br />' . PHP_EOL;
            }
            echo 
lang('Категория') . ' :<br /><select name="prich" class="form-control">';
            echo 
'<option value="' . lang('Мат') . '"> ' . lang('Мат') . '</option>';
            echo 
'<option value="' . lang('Оскорбления') . '"> ' . lang('Оскорбления') .
            
'</option>';
            echo 
'<option value="' . lang('Спам') . '">' . lang('Спам') . ' </option>';
            echo 
'<option value="' . lang('Мошенничество') . '"> ' . lang('Мошенничество') .
            
'</option>';
            echo 
'<option value="' . lang('Флуд,офтоп,тролинг') . '"> ' . lang('Флуд,офтоп,тролинг') .
            
'</option>';
            echo 
'<option value="' . lang('Другое') . '"> ' . lang('Другое') . '</option>';
            echo 
'</select><br />' . PHP_EOL;
            echo 
lang('Вы уверены ?') . '<br />
<button name="save" class="btn btn-success">' 
. lang('Да') . '</button>
<a href="?" class="btn btn-success"> ' 
. lang('Нет') . '</a>
</form>' 
. PHP_EOL;
            echo 
'</div>' . PHP_EOL;
        } else {
            
$_SESSION['message'] = lang('Нельзя подавать жалобы на свои сообщения');
            exit(
header('Location: ?'));
        }
        break;
    case 
'who':
        
#----------------------------------------------------------#
        
echo '<div class="list-group-item"><a href="?"><span class="fa fa-arrow-left fa-fw"></span> ' . lang('Назад') . '  </a></div>' . PHP_EOL;
        
$k_post = mysql_result(query("SELECT COUNT(*) FROM `user` WHERE `date_last` > '" . (time() - 300) . "' AND `url` like '/pages/mini_chat/%'"), 0);
        
$k_page = k_page($k_post, $set['p_str']);
        
$page = page($k_page);
        
$start = $set['p_str'] * $page - $set['p_str'];
        
$q = query("SELECT * FROM `user` WHERE `date_last` > '" . (time() - 300) . "' AND `url` like '/pages/mini_chat/%' ORDER BY `date_last` DESC LIMIT " . $start . ", " . $set['p_str']);

        if (
$k_post == 0) {
            
msg(lang('Не кого нету'));
        }
        while (
$guest = mysql_fetch_assoc($q)) {
            echo 
'  <div class="list-group-item">' . PHP_EOL;
            echo 
nick($guest['id']);
            echo 
'</div>' . PHP_EOL;
        }
        if (
$k_page > 1)
            
str("?", $k_page, $page);
        
#----------------------------------------------------------#
        
break;
    case 
'deletmessages':
        if (
user_access('guest_clear')) {
            if (isset(
$_GET['deletyes'])) {
                
$q_db = query("SELECT id FROM `guest`");
                
$del_count = 0;
                while (
$post = mysql_fetch_assoc($q_db)) {
                    
mysql_query("DELETE FROM `guest` WHERE `id` = '" . $post['id'] . "'");
                    
$del_count++;
                }
                
$md = ('Удалено') . ' ' . $del_count . ' ' . ('сообщений');
                
admin_log(('Мини чат'), ('Полная очистка'), $md);
                
mysql_query("OPTIMIZE TABLE `guest`");
                
msg(lang('Удалено') . ' ' . lang('сообщений') . ' ' . $del_count);
                echo 
"<div class='list-group-item'><a href='?'>" . lang('Вернуться в мини чат') . " </a></div>";
            }
            if (!isset(
$_GET['deletyes'])) {
                echo 
'<form method="post" class="list-group-item" action="?type=deletmessages&amp;deletyes">' . PHP_EOL;
                echo 
lang('Удалить все сообщения') . '? <br />* <span style="color:red;">' . lang('Будут удалены все сообщения') . ' </span><br />' . PHP_EOL;
                echo 
"<button class='btn btn-success'>" . lang('Согласен на очистку') . "</button> " . PHP_EOL;
                echo 
"<a href='?' class='btn btn-secondary'>" . lang('Отказываюсь') . "</a>";
                echo 
'</form>' . PHP_EOL;
            }
        } else {
            
msg(lang('Доступ закрыт'));
        }
        break;

    case 
'delete':
        if (
user_access('guest_delete')) {
            
$post = mysql_fetch_assoc(query("SELECT a.*, b.id AS id_u, b.nick, b.level, b.pol FROM `guest` a LEFT JOIN user b ON a.id_user = b.id WHERE a.`id` = '" . intval($_GET['id']) . "' LIMIT 1"));
            if (
$post['id_user'] == 0) {
                
$post['id_u'] = 0;
                
$post['pol'] = 'guest';
                
$post['level'] = 0;
                
$post['nick'] = lang('Гость');
            } 
//else
            //$ank = get_user($post['id_user']);
            
$md = lang('Удаление сообщения от') . ' ' . $post['nick'];
            
admin_log(lang('Мини чат'), lang('Удаление сообщения'), $md);
            
mysql_query("DELETE FROM `guest` WHERE `id` = '" . $post['id'] . "'");
            
$_SESSION['message'] = lang('сообщение удалено');
            exit(
header("Location: ?"));
        }
        break;
}
include_once 
H . 'sys/inc/tfoot.php';
Онлайн: 3
Реклама