Файл: mpanel/zaban.php
Строк: 216
<?php
include('../core/core.php');
include(MAINDIR.'style/head.php');
title('Бан / Разбан');
if (is_admin(array(101, 102, 103))) {
$my = DB::run() -> queryFetch("SELECT * FROM `users` WHERE `login`=? LIMIT 1",array(check($_COOKIE['login'])));
$admin = $my['status'];
echo'<div class="title">Бан / Разбан</div>';
$act = '<img src="/images/act.png">';
switch ($mode):
case 'index':
echo'<div class="menu">';
echo '<div class="form">';
echo 'Логин пользователя:<br />';
echo '<form method="post" action="?mode=edit">';
echo '<input type="text" name="uz" maxlength="20" />';
echo '<input value="Редактировать" type="submit" /></form></div>';
echo'</div>';
echo'<div class="menu">';
echo 'Введите логин пользователя который необходимо отредактировать';
echo'</div>';
break;
case 'edit':
$uz = check($_REQUEST['uz']);
if($uz == !NULL){
$user = DB::run() -> queryFetch("SELECT * FROM `users` WHERE `login`=? LIMIT 1",array($uz));
if($user['login'] == !NULL){
if($user['status'] == 101 || $user['status'] == 102 || $user['status'] == 103 || $user['status'] == 104){
echo'Ошибка! Запрещено банить админов и модеров сайта!'; } else {
$banned = DB::run() -> queryFetch("SELECT * FROM `history_ban` WHERE `login` =? ORDER BY `id` DESC LIMIT 1",array($uz));
echo '<div class="menu">Последний бан: '.$banned['data'].'<hr>';
echo 'Последняя причина: '.$banned['pri'].'<hr>';
echo 'Забанил: '.$banned['status'].'</div>';
$b = DB::run() -> queryFetch("SELECT * FROM `ban` WHERE `login`=? LIMIT 1",array($uz));
if($b['login'] == NULL){
echo '<div class="menu"><form method="post" action="?mode=zaban&uz='.$uz.'">';
echo '<b>Время бана:</b><br /><input name="bantime" /><br />';
echo '<input name="bantype" type="radio" value="min" checked="checked" /> Минут<br />';
echo '<input name="bantype" type="radio" value="chas" /> Часов<br />';
echo '<input name="bantype" type="radio" value="sut" /> Суток<br />';
echo '<b>Причина бана:</b><br />';
echo '<textarea name="reasonban" cols="25" rows="5"></textarea><br />';
echo '<input value="Забанить" type="submit" /></form></div>';
echo '<div class="menu">При общем числе нарушений более 10, профиль пользователя удаляется<br />';
echo 'Максимальное время бана 30 суток<br />';
echo 'Внимание! Постарайтесь как можно подробнее описать причину бана</div>';
} else {
echo '<div class="menu"><b><span style="color:#ff0000">Внимание, данный аккаунт заблокирован!</span></b><br />';
$time = $b['time'] - time();
if($time < 0){ $time = 0; } else { $time = $time; }
echo 'До окончания бана: '.formattime($time).'<br /><br />';
echo ''.$act.' <a href="?mode=editban&uz='.$uz.'">Изменить</a><br />';
echo ''.$act.' <a href="?mode=razban&uz='.$uz.'">Разбанить</a></div>';
}
}
} else {echo'Ошибка! Пользователя с данным логином не существует!';}
echo'</div>';
if(is_admin(array(101,102))){
$t = DB::run() -> query("SELECT * FROM `history_ban` WHERE login =?",array($uz)) -> rowCount();
if($t >= 10){
echo '<div class="menu"><b><span style="color:#ff0000">Внимание! Пользователь превысил лимит банов</span></b><br />';
echo 'Вы можете удалить этот профиль!<br /><br />';
echo ''.$act.' <b><a href="?mode=deluser&uz='.$uz.'">Удалить профиль</a></b></div>';
}
}
} else {}
break;
case 'deluser':
echo '<div class="menu">';
if(is_admin(array(101,102))){
$uz = check($_GET['uz']);
$user = DB::run() -> queryFetch("SELECT * FROM `users` WHERE `login`=? LIMIT 1",array($uz));
if($user['status'] == 101 || $user['status'] == 102 || $user['status'] == 103 || $user['status'] == 104){
echo'Ошибка! Запрещено удалять админов и модеров сайта!'; } else {
//del_user($uz);
echo'Профиль удален полностью!';
}
} else { echo'Доступ закрыт! Вам сюда нельзя!'; }
echo'</div>';
break;
case 'zaban':
echo'<div class="menu">';
$uz = check($_GET['uz']);
$bantime = abs(round($_POST['bantime'], 1));
$bantype = check($_POST['bantype']);
$reasonban = check($_POST['reasonban']);
if($bantime > 30){if($admin == 101){$bantime = $bantime;}else {$bantime = 30;}} else {$bantime = $bantime; }
if ($bantype == 'min') {$bantotaltime = time() + ($bantime * 60);}
if ($bantype == 'chas') { $bantotaltime = time() + ($bantime * 3600);}
if ($bantype == 'sut') { $bantotaltime = time() + ($bantime * 84600);}
if($bantotaltime > 0){
if (mb_strlen($reasonban) >= 5 && mb_strlen($reasonban) <= 1000) {
DB::run() -> query("INSERT INTO `ban`(`login`,`time`,`ban`) VALUES (?,?,?)",array($uz,$bantotaltime,$reasonban));
$data = times();
DB::run() -> query("INSERT INTO `history_ban`(`login`,`data`,`pri`,`status`) VALUES (?,?,?,?)",array($uz,$data,$reasonban,$my['login']));
echo'Аккаунт успешно заблокирован!';
} else {echo'Ошибка! Слишком длинная или короткая причина бана!'; }
} else {echo'Ошибка! Вы не указали время бана!'; }
echo'</div>';
break;
case 'razban':
echo'<div class="menu">';
$uz = check($_GET['uz']);
$b = DB::run() -> queryFetch("SELECT * FROM `ban` WHERE `login`=? LIMIT 1",array($uz));
if($b['login'] == !NULL){
DB::run() -> query("DELETE FROM `ban` WHERE `login` =?",array($uz));
echo'Аккаунт успешно разблокирован!';
} else { echo'Ошибка! Данный аккаунт уже разблокирован!'; }
echo'</div>';
break;
case 'editban':
echo'<div class="menu">';
$uz = check($_GET['uz']);
$user = DB::run() -> queryFetch("SELECT * FROM `users` WHERE `login`=? LIMIT 1",array($uz));
if($user['status'] == 101 || $user['status'] == 102 || $user['status'] == 103 || $user['status'] == 104){
echo'Ошибка! Запрещено банить админов и модеров сайта!'; } else {
$b = DB::run() -> queryFetch("SELECT * FROM `ban` WHERE `login`=? LIMIT 1",array($uz));
if($b['login'] == !NULL){
echo '<div class="menu"><form method="post" action="?mode=changeban&uz='.$uz.'">';
echo '<b>Время бана:</b><br /><input name="bantime" /><br />';
echo '<input name="bantype" type="radio" value="min" checked="checked" /> Минут<br />';
echo '<input name="bantype" type="radio" value="chas" /> Часов<br />';
echo '<input name="bantype" type="radio" value="sut" /> Суток<br />';
echo '<b>Причина бана:</b><br />';
echo '<textarea name="reasonban" cols="25" rows="5">'.$b['ban'].'</textarea><br />';
echo '<input value="Забанить" type="submit" /></form></div>';
echo '<div class="menu">При общем числе нарушений более 10, профиль пользователя удаляется<br />';
echo 'Максимальное время бана 30 суток<br />';
echo 'Внимание! Постарайтесь как можно подробнее описать причину бана</div>';
} else {
echo'Ошибка! Данный пользователь не забанен!';
}
}
echo'</div>';
break;
case 'changeban':
echo'<div class="menu">';
$uz = check($_GET['uz']);
$bantime = abs(round($_POST['bantime'], 1));
$bantype = check($_POST['bantype']);
$reasonban = check($_POST['reasonban']);
if($bantime > 30){ $bantime = 30;} else {$bantime = $bantime; }
if ($bantype == 'min') {$bantotaltime = time() + ($bantime * 60);}
if ($bantype == 'chas') { $bantotaltime = time() + ($bantime * 3600);}
if ($bantype == 'sut') { $bantotaltime = time() + ($bantime * 84600);}
if($bantotaltime > 0){
if (mb_strlen($reasonban) >= 5 && mb_strlen($reasonban) <= 1000) {
DB::run() -> query("UPDATE `history_ban` SET `pri`=? WHERE login =?",array($reasonban,$uz));
DB::run() -> query("UPDATE `ban` SET `time`=?,`ban`=? WHERE login =?",array($bantotaltime,$reasonban,$uz));
echo'Данные успешно изменены!';
} else {echo'Ошибка! Слишком длинная или короткая причина бана!'; }
} else {echo'Ошибка! Вы не указали время бана!'; }
echo'</div>';
break;
default:
header ('location: ?mode=index');
endswitch;
echo'<div class="menu"><a href="/mpanel/">В админку</a></div>';
} else {header ('location: /index.php?mode=index'); }
include(MAINDIR.'style/foot.php');
?>