<?php
/*
- NTLCMS v 18.1 19.08.2017 г
- Автор скрипта Александр (NTL)
- Скрипт клик клуба v 18.1
- Оф.сайт http://clicks24.ru
- Контакты ntl-jt@mail.ru
- Все права принадлежат разработчику
- Вы не имеете право вносить изменения в код скрипта
- Данный скрипт запрещено распространять
*/
define('NTLCMS', 1);
$module = 'panel';
include ('../system/start.php');
include ('../system/function.php');
include ('../system/antidos.php');
include ('../system/head.php');
################################################################################
if ($active && $_USER['admin'] == '1'){
################################################################################
switch($act){
default:
echo '<div class="title"><center>Админ-Панель | Бан/Разбан</center></div>';
################################################################################
echo '<div class="menu">'.image('targetuser.png','18|18').' <a href="'.URL.'/_ban-add">Банить юзера</a></div>';
$k_post = DB :: run() -> querySingle("select count(`id`) from `ban`");
$k_page = k_page($k_post, $onpage);
$page = page($k_page);
$start = $onpage * $page - $onpage;
$sql = DB :: run() -> query("select * from `ban` where `id` order by `id` desc limit ".$start.", ".$onpage);
if ($k_post == 0){
echo '<div class="post"><center>'.image('fail.png','16|16').' Забаненных еще нет!</center></div>';
} else {
echo '<table border="1" class="menu" width="100%"><tr><td><center>Логин</center></td><td><center>Срок бана</center></td>
<td><center>Причина бана</center></td><td><center>Действие</center></td></tr>';
while ($row = $sql -> fetch(PDO::FETCH_OBJ)){
echo '<tr><td><center>'.login($row -> who, 1).'</center></td><td><center>'.date('d.m.Y H:i', $row -> date).'</center></td>
<td><center>'.filter_out($row -> reason).'</center></td><td><center><a href="'.URL.'/_ban-unban'.((int) $row -> id).'">Разбанить</a></center></td></tr>';
}
echo '</table>';
if ($k_page > 1) navigation(URL.'/_ban?', $k_page, $page);
}
echo '<div class="block">'.image('home.png','18|18').' <a href="'.URL.'/cabinet">В кабинет</a> | <a href="'.URL.'/_control">Админ-Панель</a></div>';
break;
################################################################################
case 'add':
echo '<div class="title"><center>Админ-Панель | Банить юзера</center></div>';
$error = null;
if (isset($_POST['name']) && isset($_POST['text']) && isset($_POST['quantity'])){
$name = isset($_POST['name']) ? filter_in($_POST['name']) : false;
$reason = isset($_POST['text']) ? filter_in($_POST['text']) : false;
$stop = TIME + ($_POST['quantity'] * $_POST['that']);
if (empty($name)){
$error.= 'Введите логин пользователя!<br/>';
} elseif(!preg_match('#[a-zA-Z0-9_-]{3,15}#i', $name)){
$error.= 'Логин должен содержать от 3 до 15 символов!<br/>';
} elseif(!DB :: run() -> querySingle("select (`login`) from `users` where `login` = ?", array($name))){
$error.= 'Пользователь '.$name.' не найден в системе!<br/>';
} elseif(preg_match('/([a-zA-Zа-яА-Я])+([0-9]{6})|(\s)|(\W)/', $name)){
$error.= 'Спец символы в логинах запрещены!<br/>';
} elseif ($name == ADMINS()){
$error.= 'Администратора нельзя заблокировать!<br/>';
} elseif ($ulogin == $name){
$error.= 'Вы не можете себя заблокировать!<br/>';
}
if (empty($reason)){
$error.= 'Введите причину бана!<br/>';
} elseif (mb_strlen($reason, 'UTF-8') < 2 or mb_strlen($reason, 'UTF-8') > 250){
$error.= 'Причина должна содержать от 2 до 250 символов!<br/>';
}
if (empty($_POST['quantity'])){
$error.= 'Введите срок бана!<br/>';
} elseif(!preg_match('#[0-9]{1,4}#i', $_POST['quantity'])){
$error.= 'Срок бана должен содержать от 1 до 4 цифр!<br/>';
}
if ($error) {
echo '<div class="post"><center>'.image('fail.png','16|16').' '.$error.'</center></div>';
} else {
if (DB :: run() -> query("insert into `ban` (`admin`, `time`, `date`, `who`, `reason`) values (?, ?, ?, ?, ?)", array($ulogin, TIME, $stop, $name, $reason))){
header('Location: '.URL.'/_ban');
$_SESSION['success'] = 'Пользователь успешно забанен!';
} else {
echo '<div class="post"><center>'.image('fail.png','16|16').' Пользователь не забанен!</center></div>';
}
}
}
echo '<div class="menu"><form name="form" action="'.URL.'/_ban-add" method="post">
* Логин юзера:<br/><input type="text" name="name" maxlength="15" value="'.filter_out($_GET['login']).'"/><br/>
* Причина бана:<br/><textarea name="text" rows="4" cols="40"></textarea><br/>
* Cpoк бана юзера:<br/>
<input name="quantity" size="4" maxlength="4" type="text"/>
<select name="that" size="1">
<option value="60">мин</option>
<option value="86400">днeй</option>
<option value="604800">нeдeль</option>
<option value="2419200">мecяцeв</option>
</select><br/>
<input type="submit" value="Банить юзера"/></form></div>';
echo '<div class="block">'.image('home.png','18|18').' <a href="'.URL.'/cabinet">В кабинет</a> | <a href="'.URL.'/_ban">Бан/Разбан</a> | <a href="'.URL.'/_control">Админ-Панель</a></div>';
break;
################################################################################
case 'unban':
if (isset($_GET['id'])){
$id = isset($_GET['id']) ? filter_int($_GET['id']) : '0';
if (DB :: run() -> querySingle("select count(`id`) from `ban` where `id` = ?", array($id))){
DB :: run() -> query("delete from `ban` where `id` = ?", array($id));
header('Location: '.URL.'/_ban');
$_SESSION['success'] = 'Пользователь разбанен!';
} else {
header('Location: '.URL.'/_ban');
$_SESSION['fail'] = 'Пользователь не разбанен!';
}
} else {
header('Location: '.URL.'/_ban');
$_SESSION['fail'] = 'Действие запрещено!';
}
break;
################################################################################
}
} else {
echo '<div class="title"><center>Проверка прав доступа</center></div>';
echo '<div class="menu"><center>'.image('fail.png','16|16').' Доступ запрещен!</center></div>';
echo '<div class="block">'.image('home.png','18|18').' '.(isset($active) ? '<a href="'.URL.'/cabinet">В кабинет</a>' : '<a href="'.URL.'">На главную</a>').'</div>';
}
include ('../system/foot.php');
?>