Просмотр файла admin_panel/zaban.php

Размер файла: 9.12Kb
<?
include('../core/core.php');
include(BASEDIR.INC.'func.php');
include(BASEDIR.INC.'session.php');
include(BASEDIR.INC.'session_user.php');
$mode = htmlspecialchars($_GET['mode']);
include(BASEDIR.INC.'head.php');
show_title('Бан / Разбан');
if (is_admin(array(101, 102, 103))) {
$users = mysql_query('SELECT * FROM users WHERE login = "'.$_COOKIE['login'].'"');
$users = mysql_fetch_assoc($users);
$admin = $users['status'];
if($admin == 101 || $admin == 102){ echo'<div class="razdel">Админ-панель</div>'; }
if($admin == 103 || $admin == 104){ echo'<div class="razdel">Модер-панель</div>'; }
$act = '<img src="'.BASEDIR.''.IMG.'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 = htmlspecialchars($_REQUEST['uz']);
if($uz == !NULL){
$user = mysql_query('SELECT * FROM users WHERE login = "'.$uz.'"');
$user = mysql_fetch_assoc($user);
if($user['login'] == !NULL){
if($user['status'] == 101 || $user['status'] == 102 || $user['status'] == 103 || $user['status'] == 104){
echo'Ошибка! Запрещено банить админов и модеров сайта!'; } else {
$banned = mysql_query('SELECT * FROM `history_ban`  WHERE `login` = "'.$uz.'" ORDER BY `id` DESC LIMIT 1 ');
$banned = mysql_fetch_assoc($banned);
echo '<div class="menu">Последний бан: '.$banned['data'].'<hr>';
echo 'Последняя причина: '.$banned['pri'].'<hr>';
echo 'Забанил: '.$banned['status'].'</div>';
$b = mysql_query('SELECT * FROM ban  WHERE login = "'.$uz.'"');
$b = mysql_fetch_assoc($b);
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($admin == 101 || $admin == 102){
$o = mysql_query("SELECT count(*) FROM `history_ban` WHERE login = '".$uz."'");
$r = mysql_fetch_row($o);
$t = $r[0];
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($admin == 101 || $admin == 102){
$uz = htmlspecialchars($_GET['uz']);
$user = mysql_query('SELECT * FROM users WHERE login = "'.$uz.'"');
$user = mysql_fetch_assoc($user);
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 = htmlspecialchars($_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 (utf_strlen($reasonban) >= 5 && utf_strlen($reasonban) <= 1000) {
mysql_query('INSERT INTO `ban`(`login`,`time`,`ban`) VALUES ("'.$uz.'","'.$bantotaltime.'","'.$reasonban.'")');
$data = date("d.m.Y H:i:s");
mysql_query('INSERT INTO `history_ban`(`login`,`data`,`pri`,`status`) VALUES ("'.$uz.'","'.$data.'","'.$reasonban.'","'.$_COOKIE['login'].'")');
echo'Аккаунт успешно заблокирован!';
} else {echo'Ошибка! Слишком длинная или короткая причина бана!'; }
} else {echo'Ошибка! Вы не указали время бана!'; }
echo'</div>';
break;
case 'razban':
echo'<div class="menu">';
$uz = htmlspecialchars($_GET['uz']);
$b = mysql_query('SELECT * FROM ban  WHERE login = "'.$uz.'"');
$b = mysql_fetch_assoc($b);
if($b['login'] == !NULL){
mysql_query('DELETE FROM `ban` WHERE `login` = "'.$uz.'"');
echo'Аккаунт успешно разблокирован!';
} else { echo'Ошибка! Данный аккаунт уже разблокирован!'; }
echo'</div>';
break;
case 'editban':
echo'<div class="menu">';
$uz = htmlspecialchars($_GET['uz']);
$user = mysql_query('SELECT * FROM users WHERE login = "'.$uz.'"');
$user = mysql_fetch_assoc($user);
if($user['status'] == 101 || $user['status'] == 102 || $user['status'] == 103 || $user['status'] == 104){
echo'Ошибка! Запрещено банить админов и модеров сайта!'; } else {
$b = mysql_query('SELECT * FROM ban  WHERE login = "'.$uz.'"');
$b = mysql_fetch_assoc($b);
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 = htmlspecialchars($_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 (utf_strlen($reasonban) >= 5 && utf_strlen($reasonban) <= 1000) {
mysql_query("UPDATE `history_ban` SET `pri`='$reasonban' WHERE login = '".$uz."';");
mysql_query("UPDATE `ban` SET `time`='$bantotaltime',`ban`='$reasonban' WHERE login = '".$uz."';");
echo'Данные успешно изменены!';
} else {echo'Ошибка! Слишком длинная или короткая причина бана!'; }
} else {echo'Ошибка! Вы не указали время бана!'; }
echo'</div>';
break;
default: 
header ('location: ?mode=index'); 
endswitch;
echo'<div class="menu"><a href="/">На главную</a></div>';
} else {header ('location: /index.php?mode=index'); } 
include(BASEDIR.INC.'foot.php');
?>