Файл: hostbiter.ru/Modules/page/tiket.php
Строк: 77
<?
require ($_SERVER['DOCUMENT_ROOT'].'/Core/core.php');
$title = 'Тех-поддержка';
require ($_SERVER['DOCUMENT_ROOT'].'/Core/myhead.php');
switch($_GET['ls']){
default:
$tickets = $db->prepare("SELECT * FROM `tickets` WHERE `user` = ? AND `status` = ?");
$tickets->execute([$user['id'],'open']);
$tickets = $tickets->rowCount();
$max = 10;
$k_post = $tickets;
$k_page = k_page($k_post,$max);
$page = page($k_page);
$start = $max*$page-$max;
$all = $db->prepare("SELECT * FROM `tickets` WHERE `user` = ? AND `status` = ? LIMIT $start,$max");
$all -> execute([$user['id'],'open']);
$all = $all -> fetchAll();
?>
Новые запросы || <a href="/page/tiket.php?ls=arc">Архив</a></div>
Всего тикетов: <?=$k_post?><br />
<?
if($k_post > 0){
foreach($all as $row){
?>
<div class="border2" id="border"><img src="/image/edit.gif" alt="" />
<a href="/page/tiket.php?ls=view&id=<?=$row['id']?>"><?=$row['name']?></a><br />
Статус: <b>Открыт</b><br />
<?
echo '<img src="/image/green.png" alt="" /> <a href="/page/tiket.php?ls=off&id='.$row['id'].'">Закрыть тикет</a><br /></div>';
}
if($k_page >1){
echo str('?',$k_page,$page);
}
}else{
echo '<center>
<div class="mess">
<img src="/image/EB03.png" alt="" /> Нет тикетов!
</div>
</center>';
}
?>
<img src="/image/page.png" alt="" /> <a href="/page/tiket.php?ls=crt">Новый тикет</a><br />
<?
echo '<img src="/image/back.gif" alt="" /> <a href="/page/tiket.php">Назад</a><br />';
break;
case 'crt':
if(isset($_GET['crt'])){
$name = htmlspecialchars(trim($_POST['name']));
$mess = htmlspecialchars(trim($_POST['mess']));
$rule = htmlspecialchars(trim($_POST['rule']));
if($rule != true) $err = 'Вы не согласны с правилами обращения в тех-поддержку!';
elseif(mb_strlen($name) > 30) $err = 'Длина названия не более 30 символов!';
if(!$err){
$sql1 = $db->prepare("INSERT INTO `tickets` (`user`,`name`) VALUES (?,?)");
$sql1->execute([$user['id'],$name]);
$sql2 = $db->prepare("SELECT * FROM `tickets` WHERE `name` = ? AND `user` = ?");
$sql2->execute([$name,$user['id']]);
$tik = $sql2->fetch();
$sql3 = $db->prepare("INSERT INTO `ticket_message` (`user`,`ticket`,`message`,`time`,`status`) VALUES (?,?,?,?,?)");
$sql3->execute([$user['id'],$tik['id'],$mess,time(),'notread']);
$_SESSION['message'] = 'Тикет отправлен Администрации!';
header("Location: /page/tiket.php?ls=view&id=".$tik['id']);
exit;
}else{
$_SESSION['message'] = $err;
header("Location: /page/tiket.php?ls=crt");
exit;
}
}
?>
<div id="border">Создание тикета</div>
<b>Порядок обращения:</b><br />
<b>1.</b> Мы НЕ оказываем техническую поддержку третьим лицам.<br />
<b>2.</b> Мы НЕ отвечаем на вопросы типа: "Напишите нам скрипт", "Давайте знакомиться" и прочие несодержательные сообщения.<br />
<b>3.</b> Мы НЕ знаем и не будем узнавать почему у вас не работает тот или иной скрипт.<br />
<b>4.</b> За ненормативную лексику, оскорбления, флейм вы будете <font color="red">отключены</font> от возможности обращения в Тикет систему!<br />
<b>5.</b> Мы не решаем вопросы, ответы на которые есть в свободном доступе и обсуждались много раз.
К этим вопросам относятся "Как парковать домен", "Как ставить движок", "Как писать дизайны" и т.д.<br />
<b>Техническая поддержка НЕ обязана:</b><br />
1. Устанавливать/настраивать для клиента wap/web-скрипты, которые он по каким либо причинам не может установить самостоятельно.<br />
2. Настраивать Веб-сервер под нужды клиента (это Шаред хостинг).<br />
3. Обучать клиента, как пользоваться серверными приложениями. (есть источник: Интернет! Там можно найти нужную вам информацию).<br />
4. Распаковывать Backup данных, в случаи утери клиентом файлов по причине Халатности.<br />
<br />
Не стоит ИГНОРИРОВАТЬ эти правила! В противном случае ваш запрос останется без ответа.<br />
<b style="color:red;"> Старайтесь как можно чётче сформулировать свой вопрос</b><br />
<div class="list">
<p>
<form name="form" method="post" action="/page/tiket.php?ls=crt&crt">
Тема (max 30): <br />
<input name="name" type="text" required/><br />
Сообщение:
<div>
<textarea cols="5" rows="5" name="mess" required></textarea><br />
<input type="checkbox" value="true" name="rule" /> <b><font color="red">С правилами создания тикета ознакомлен и согласен</font></b><br />
<button type="submit" name="crt">Создать</button>
</div>
</form>
</p>
</div>
<img src="/image/back.gif" alt="" /> <a href="/page/tiket.php">Назад</a><br />
<?
break;
case 'off':
$id = abs(intval($_GET['id']));
$sql4 = $db->prepare("SELECT * FROM `tickets` WHERE `id` = ?");
$sql4->execute([$id]);
$sql4 = $sql4->fetch();
if($sql4['user'] != $user['id'] OR $user['admin'] == 0){
$_SESSION['message'] = 'Тикет не принадлежит вам!';
header("Location: /page/tiket.php");
exit;
}else{
$sql5 = $db->prepare("UPDATE `tickets` SET `status` = ? WHERE `id` = ?");
$sql5->execute(['close',$id]);
$_SESSION['message'] = 'Тикет закрыт!';
header("Location: /page/tiket.php");
exit;
}
break;
case 'on':
$id = abs(intval($_GET['id']));
$sql4 = $db->prepare("SELECT * FROM `tickets` WHERE `id` = ?");
$sql4->execute([$id]);
$sql4 = $sql4->fetch();
if($sql4['user'] != $user['id'] OR $user['admin'] == 0){
$_SESSION['message'] = 'Тикет не принадлежит вам!';
header("Location: /page/tiket.php");
exit;
}else{
$sql5 = $db->prepare("UPDATE `tickets` SET `status` = ? WHERE `id` = ?");
$sql5->execute(['open',$id]);
$_SESSION['message'] = 'Тикет открыт!';
header("Location: /page/tiket.php");
exit;
}
break;
case 'view':
$id = abs(intval($_GET['id']));
$ticket = $db->prepare("SELECT * FROM `ticket_message` WHERE `ticket` = ?");
$ticket->execute([$id]);
$ticket = $ticket->rowCount();
$ticketss = $db->prepare("SELECT * FROM `tickets` WHERE `id` = ?");
$ticketss->execute([$id]);
$tick = $ticketss->fetch();
if($tick['user'] != $user['id'])
{
$_SESSION['message'] = 'Нет доступа!';
header("Location: /page/tiket.php");
exit;
}
$max = 10;
$status = ['open' => 'Открыт', 'close' => 'Закрыт'];
$k_post = $ticket;
$k_page = k_page($k_post,$max);
$page = page($k_page);
$start = $max*$page-$max;
$all = $db->prepare("SELECT * FROM `ticket_message` WHERE `ticket` = ? ORDER BY `time` DESC LIMIT $start,$max");
$all -> execute([$id]);
$all = $all -> fetchAll();
if(isset($_GET['add'])){
$id1 = abs(intval($_GET['id']));
$tic = $db->prepare("SELECT * FROM `tickets` WHERE `id` = ?");
$tic->execute([$id1]);
$tic = $tic->rowCount();
$message = htmlspecialchars(trim($_POST['message']));
if($user['admin'] < 1) $err = 'Вы не специалист тех-поддержки!';
if(!$err){
if($user['admin'] > 0){
$userer = 0;
}else{
$userer = $user['id'];
}
$sql6 = $db->prepare("INSERT INTO `ticket_message` (`user`,`message`,`ticket`,`time`,`status`) VALUES (?,?,?,?,?)");
$sql6->execute([$userer,$message,$id1,time(),'notread']);
$_SESSION['message'] = 'Сообщение добавлено!!';
header("Location: /page/tiket.php?ls=view&id=".$id1);
exit;
}else{
$_SESSION['message'] = $err;
header("Location: /page/tiket.php?ls=view&id=".$id1);
exit;
}
}
echo '<div id="border">Просмотр тикета</div>Тема: '.$tick['name'].'<br />
Статус: '.$status[$tick['status']].'<br />
Всего сообщений: '.$k_post.'<br /><br />';
foreach($all as $row){
$us = $db->prepare("SELECT * FROM `users` WHERE `id` = ?");
$us->execute([$row['user']]);
$us = $us->fetch();
if($row['user'] != 0){
$log = $us['login'];
}else{
$log = 'Тех-поддержка';
}
echo '<div id="border" class="border1"><FIELDSET><LEGEND> '.$log.' </LEGEND> <br />'.$row['message'].'</FIELDSET></div>';
}
if($k_page >1){
echo str('?',$k_page,$page);
}
echo '<div class="list">
<p>
<form name="form" method="post" action="/page/tiket.php?ls=view&id='.$id.'&add">
<br />Новое сообщение:<br />
<div>
<textarea cols="5" rows="5" name="message" required></textarea><br />
<button type="submit" name="add">Написать</button>
</div>
</form>
</p>
</div><br />';
if($user['admin'] > 0){
if($tick['status'] == 'open'){
echo '<img src="/image/back.gif" alt="" /> <a href="/page/tiket.php?ls=off&id='.$id.'">Закрыть тикет</a><br />';
}else{echo '<img src="/image/back.gif" alt="" /> <a href="/page/tiket.php?ls=on&id='.$id.'">Открыть тикет</a><br />';}
}
echo '<img src="/image/back.gif" alt="" /> <a href="/page/tiket.php">Назад</a><br />';
break;
case 'arc':
$tickets = $db->prepare("SELECT * FROM `tickets` WHERE `user` = ? AND `status` = ?");
$tickets->execute([$user['id'],'close']);
$tickets = $tickets->rowCount();
$max = 10;
$k_post = $tickets;
$k_page = k_page($k_post,$max);
$page = page($k_page);
$start = $max*$page-$max;
$all = $db->prepare("SELECT * FROM `tickets` WHERE `user` = ? AND `status` = ? LIMIT $start,$max");
$all -> execute([$user['id'],'close']);
$all = $all -> fetchAll();
?>
<a href="/page/tiket.php">Новые запросы</a> || Архив</div>
Всего тикетов: <?=$k_post?><br />
<?
if($k_post > 0){
foreach($all as $row){
?>
<div class="border2" id="border"><img src="/image/edit.gif" alt="" />
<a href="/page/tiket.php?ls=view&id=<?=$row['id']?>"><?=$row['name']?></a><br />
<?
echo '<img src="/image/green.png" alt="" /> <a href="/page/tiket.php?ls=on&id='.$row['id'].'">Открыть тикет</a><br /></div>';
}
if($k_page >1){
echo str('?',$k_page,$page);
}
}else{
echo '<center>
<div class="mess">
<img src="/image/EB03.png" alt="" /> Архив пуст!
</div>
</center>';
}
echo '<img src="/image/back.gif" alt="" /> <a href="/page/tiket.php">Назад</a><br />';
break;
}
require ($_SERVER['DOCUMENT_ROOT'].'/Core/myfoot.php');
?>