Файл: support/kom.action.php
Строк: 47
<?php
/*
* Модуль: Поддержака сайта(Тикеты) 
* Автор: LeXoN
* Моя анкета: http://dcms.su/profile.view.php?id=2843
* Сайт: DcmsTema.ru
*/
include_once '../sys/inc/start.php';
$doc = new document(1);
$doc->title = __('Тикеты');
//Проверка на передачу ИД
if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
    header('Refresh: 1; url=./');
    $doc->err(__('Ошибка выбора тикета'));
    exit;
}
//Присвоение ИД к пременой ** $id_tiket
$id_tiket = (int) $_GET['id'];
//Проверка на существования тикита с таким ИД
$q = $db->prepare("SELECT * FROM `tiket` WHERE `id` = ?  LIMIT 1");
$q->execute(Array($id_tiket));
if (!$tiket = $q->fetch()) {
    if (isset($_GET['return']))
        header('Refresh: 1; url=' . $_GET['return']);
    else
        header('Refresh: 1; url=./');
    $doc->err(__('Тикет не существует'));
    exit;
}
$autor = new user($tiket['id_user']);
//Проверка на передачу ИД
if (!isset($_GET['id_kom']) || !is_numeric($_GET['id_kom'])) {
    header('Refresh: 1; url=./');
    $doc->err(__('Ошибка выбора сообщения'));
    exit;
}
//Присвоение ИД к пременой ** $id_tiket
$id_kom = (int) $_GET['id_kom'];
//Проверка на существования тикита с таким ИД
$q = $db->prepare("SELECT * FROM `tiket_kom` WHERE `id` = ?  LIMIT 1");
$q->execute(Array($id_kom));
if (!$kom = $q->fetch()) {
    if (isset($_GET['return']))
        header('Refresh: 1; url=' . $_GET['return']);
    else
        header('Refresh: 1; url=./');
    $doc->err(__('Сообщение не существует'));
    exit;
}
    
$kom_autor = new user($kom['id_user']);
$access_edit = false;
$edit_time = $kom['time'] - TIME + 600;
if ($user->group > $kom_autor->group || $user->group == groups::max())
    $access_edit = true;
elseif ($user->id == $kom_autor->id && $edit_time > 0) {
    $access_edit = true;
    $doc->msg(__('Для изменения сообщения осталось %d сек', $edit_time));
}
if (!$access_edit) {
    if (isset($_GET['return']))
        header('Refresh: 1; url=' . $_GET['return']);
    else
        header('Refresh: 1; url=./');
    $doc->err(__('Сообщение не доступно для редактирования'));
    exit;
}
if (!empty($_GET ['act']) && ($kom_autor->id == $user->id || $user->group >= 2)) {
    switch ($_GET ['act']) {
        case 'edit' :
              $doc->title = __('Редактирование сообщения');
              if (isset($_POST['message'])) {
                    $message_new = text::input_text($_POST['message']);
                    if ($message_new == $kom['msg']) {
        $doc->err(__('Изменения не обнаружены'));
    } elseif ($dcms->censure && $mat = is_valid::mat($message_new)) {
        $doc->err(__('Обнаружен мат: %', $mat));
    } elseif ($message_new) {
        if (isset($_GET['return']))
            header('Refresh: 1; url=' . $_GET['return']);
        else
            header('Refresh: 1; url=tiket.php?id=' . $tiket['id']);
            $res = $db->prepare("UPDATE `tiket_kom` SET `msg` = ? WHERE `id` = ?  LIMIT 1");
$res->execute(Array($message_new,$kom['id']));
        $doc->msg(__('Сообщение успешно изменено'));
        if (isset($_GET['return']))
            $doc->ret('В тикет', text::toValue($_GET['return']));
        else
            $doc->ret(__('В тикет'), 'tiket.php?id=' . $tiket['id']);
        exit;
    } else {
        $doc->err(__('Нельзя оставить пустое сообщение'));
    }
              }
              $form = new form("?id=$tiket[id]&id_kom=$kom[id]&act=edit&" . passgen() . (isset($_GET['return']) ? '&return=' . urlencode($_GET['return']) : null));
              $form->textarea('message', __('Редактирование сообщения'), $kom['msg']);
              $form->button(__('Применить'));
              $form->display();
              $doc->ret(__('В тикет'), 'tiket.php?id=' . $tiket['id']);
         exit();
        case 'delete' :
        if($user->group >= 2){}else{
            header('Refresh: 1; url=./');
            $doc->err(__('Доступ запрещен'));
            exit;
        }
            $doc->title = __('Удаление сообщение');
            if (!empty($_POST ['delete'])) {
                if (empty($_POST ['captcha']) || empty($_POST ['captcha_session']) || !captcha::check($_POST ['captcha'], $_POST ['captcha_session'])) {
                    $doc->err(__('Проверочное число введено неверно'));}
                elseif($res) {
                $res = $db->prepare("DELETE FROM `tiket_kom` WHERE `id` = ?  LIMIT 1");
$res->execute(Array($kom['id']));
                    $doc->msg(__('Сообщение успешно удалено'));
                    $doc->ret(__('В тикет'), 'tiket.php?id=' . $tiket['id']);
                    header('Refresh: 1; url=tiket.php?id=' . $tiket['id']);
                } else {
                    $doc->err(__('Не удалось удалить сообщение'));
                    $doc->ret(__('В тикет'), 'tiket.php?id=' . $tiket['id']);
                    header('Refresh: 1; url=tiket.php?id='.$tiket['id']);
                }
                exit();
            }
            $form = new form("?id=$tiket[id]&id_kom=$kom[id]&act=delete&" . passgen() . (isset($_GET['return']) ? '&return=' . urlencode($_GET['return']) : null));
            $form ->captcha();
            $form->button(__('Удалить сообщение'), 'delete');
            $form->display();
            $doc->ret(__('Вернуться'), 'tiket.php?id='.$tiket['id']);
            exit();
    } // switch
}