View file ä󿪫¬/panel/ban.php

File size: 5.73Kb
<?php

foreach (array('start', 'compress', 'sess', 'settings', 'db_connect', 'ipua', 'fnc', 'adm_check', 'user') as $inc) {
    require_once "../sys/inc/$inc.php";
}

if (access('user_ban_set')) {
    
$ank = $pdo->query(("SELECT * FROM `user` WHERE `id` = '".intval($_GET['id'])."' LIMIT 1"))->fetch(PDO::FETCH_ASSOC);
    


$set['title'] = 'Бан пользователя ' . $ank['nick'];
require_once H . 'sys/inc/thead.php';

aut();
err();

#Навигация
echo "<div class='card-header'>";
echo "<a href='/' data-toggle='tooltip' data-placement='right' title='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
echo "<a href='/panel/'>" . lang('Админ панель') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
echo lang('Бан пользователя') . " $ank[nick]";
echo "</div>";


if (isset($_GET['del']) && access('user_ban_set')) {
    $ban_info = $pdo->query(("SELECT * FROM `ban` WHERE `id_user` = '$ank[id]' AND `id` = '" . intval($_GET['del']) . "'"))->fetch(PDO::FETCH_ASSOC);
    $ank2 = $pdo->query(("SELECT * FROM `user` WHERE `id` = '$ban_info[id_ban]' LIMIT 1"));
$pdo->query("DELETE FROM `ban` WHERE `id` = '" . intval($_GET['del']) . "'");       
admin_log('Пользователи', 'Бан', "Удаление бана пользователя '[url=/panel/ban.php?id=$ank[id]]$ank[nick][/url]'");
$_SESSION['message']='Бан успешно удален';
header('location: ?id='.$ank['id'].'');
 
}



if (isset($_GET['unset']) && access('user_ban_set')) {
    $ban_info = $pdo->query(("SELECT * FROM `ban` WHERE `id_user` = '$ank[id]' AND `id` = '" . intval($_GET['unset']) . "'"))->fetch(PDO::FETCH_ASSOC);
    $ank2 = $pdo->query(("SELECT * FROM `user` WHERE `id` = '$ban_info[id_ban]' LIMIT 1"));

        $pdo->query("UPDATE `ban` SET `time` = '$time', `status` = '0', `navsegda` = '0' WHERE `id` = '" . intval($_GET['unset']) . "' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
       
admin_log('Пользователи', 'Бан', "Снятие бана пользователя '[url=/panel/ban.php?id=$ank[id]]$ank[nick][/url]'");
$_SESSION['message']='Время бана обнулено';
header('location: ?id='.$ank['id'].'');
 
}

if (isset($_POST['ban_pr']) && isset($_POST['time']) && isset($_POST['vremja']) && (access('user_ban_set'))) {
    $timeban = $time;
    if ($_POST['vremja'] == 'min') {
        $timeban += intval($_POST['time']) * 60;
    }
    if ($_POST['vremja'] == 'chas') {
        $timeban += intval($_POST['time']) * 60 * 60;
    }
    if ($_POST['vremja'] == 'sut') {
        $timeban += intval($_POST['time']) * 60 * 60 * 24;
    }
    if ($_POST['vremja'] == 'mes') {
        $timeban += intval($_POST['time']) * 60 * 60 * 24 * 30;
    }
    if ($timeban < $time) {
        $err[] = 'Ошибка времени бана';
    }

    if (!access('user_ban_set')) {
        $timeban = min($timeban, $time + 3600 * 24);
    }

    $prich = htmlspecialchars($_POST['ban_pr']);

    if (utf8_strlen($prich) > 500) {
        $err[] = 'Сообщение слишком длинное';
    }



    if (!isset($err)) {
        $pdo->query("INSERT INTO `ban` (`id_user`, `id_ban`, `prich`, `time`, `status`) VALUES ('$ank[id]', '$user[id]', '$prich', '$timeban', '1')");

        admin_log('Пользователи', 'Бан', "Бан пользователя '[url=/panel/ban.php?id=$ank[id]]$ank[nick][/url]' до " . date::time($timeban) . " по причине '$prich'");
$_SESSION['message']='Пользователь успешно забанен';
header('location: ?id='.$ank['id'].'');
    }
}

$k_post = $pdo->query(("SELECT COUNT(*) FROM `ban` WHERE `id_user` = '$ank[id]'"), 0)->fetchColumn();
$k_page = k_page($k_post, $set['p_str']);
$page = page($k_page);
$start = $set['p_str'] * $page - $set['p_str'];

if ($k_post == 0) {
    $doc->NoResult();
}

$q = $pdo->query("SELECT * FROM `ban` WHERE `id_user` = '$ank[id]' ORDER BY `time` DESC LIMIT $start, $set[p_str]");
while ($post = $q->fetch(PDO::FETCH_ASSOC)) {


echo "<div class='list-group-item'>";    
echo "<div class='mess'>";
echo "<b>Пользователь заблокирован администратором</b> ";
echo "".user($post['id_ban'])."<br><br>";
echo "<b>Осталось:</b> " . date::time($post['time']) . "<br><br>";
echo "<b>Раздел:</b> весь сайт<br><br>";
echo "<b>Причина:</b> " . output_text($post['prich']) . "<br><br>";


 if ($post['time'] > $time) {

        echo "<a href='?id=$ank[id]&amp;unset=$post[id]'>Снять бан</a> ";
 }               
 echo " <a href='?id=$ank[id]&amp;del=$post[id]'>Удалить бан</a><br />";
       
echo "</div>";
echo "</div>"; 
}

if ($k_page > 1) {
    echo "<div class='list-group-item'>";
    str('?id=' . $ank['id'] . '&amp;', $k_page, $page);
    echo "</div>";
}


echo "<form class='list-group-item' action = 'ban.php?id=$ank[id]' method = 'post'>";

$doc->Textarea('ban_pr', 'Причина', 1024);

    echo "<br>Время бана " . (access('user_ban_set') ? null : '(max 1 сутки)') . ":<br />";

    echo "<br><input id='time' name='time' length='11' type='text' value='10' class='form-control'>";

    echo "<select class='form-control' name='vremja'>";
    echo "<option value='min'>Минуты</option>\n";
    echo "<option " . (($k_post > 1) ? 'selected="selected" ' : null) . "value='chas'>Часы</option>\n";
    echo "<option value='sut'>Сутки</option>\n";
    echo "<option value='mes'" . (access('user_ban_set') ? null : ' disabled="disabled"') . ">Месяцы</option>\n";
    echo "</select><br />\n";

 echo "<button class='knopka'>Забанить</button>";
 echo "</form>\n";




}else{
header('location: /index.php');
$_SESSION['err'] = 'Ошибка доступа';
}



require_once H . 'sys/inc/tfoot.php';