Файл: system/inc/ban.php
Строк: 108
<?php
/* 
    Appointment: Фильтр по: IP, E-Mail
    File: ban.php
 
*/
if(!defined('MOZG'))
    die('Hacking attempt!');
//Если добавляем
if(isset($_POST['save'])){
    $ban_date = intval($_POST['days']);
    $this_time = $ban_date ? $server_time + ($ban_date * 60 * 60 * 24) : 0;
    if($this_time) $always = 1; else $always = 0;
    if(isset($_POST['ip'])) $ip = $db->safesql(htmlspecialchars(strip_tags(trim($_POST['ip'])))); else $ip = "";
    $descr = textFilter($_POST['descr']);
    
    if($ip){
        $row = $db->super_query("SELECT id FROM `".PREFIX."_banned` WHERE ip ='".$ip."'");
        if($row){
            msgbox('Ошибка', 'Этот IP уже добавлен под фильтр', '?mod=ban');
        } else {
            $db->query("INSERT INTO `".PREFIX."_banned` SET descr = '".$descr."', date = '".$this_time."', always = '".$always."', ip = '".$ip."'");
            @unlink(ENGINE_DIR.'/cache/system/banned.php');
            header("Location: ?mod=ban");
        }
    } else
        msgbox('Ошибка', 'Укажите IP который нужно добавить под фильтр', 'javascript:history.go(-1)');
} else {
    echoheader();
    
    //Разблокировка
    if($_GET['act'] == 'unban'){
        $id = intval($_GET['id']);
        $db->query("DELETE FROM `".PREFIX."_banned` WHERE id = '".$id."'");
        @unlink(ENGINE_DIR.'/cache/system/banned.php');
        header("Location: ?mod=ban");
    }
    
    echohtmlstart('Добавление в фильтр IP адреса');
    echo <<<HTML
<style type="text/css" media="all">
.inpu{width:308px;}
textarea{width:300px;height:100px;}
</style>
Вы можете воспользоваться данным разделом, чтобы заблокировать определенные IP адреса. При входе IP адреса, то доступ на сайт данному IP или подсети закрывается полностью, а не только для регистрации.
<br /><br />
<b>Примечание:</b> вы можете воспользоваться в фильтре символом звездочки * для подстановки в IP адрес или электронный адрес (например: 127.0.*.*).
<form method="POST" action="" style="margin-top:15px">
<div class="fllogall">IP:</div><input type="text" name="ip" class="inpu" value="{$row['user_email']}" /><div class="mgcler"></div>
<div class="fllogall">Количество дней блокировки:<br /><small><b>0</b> неограничен по времени.</small></div><input type="text" name="days" class="inpu" value="{$row['user_name']}" /><div class="mgcler"></div>
<div class="fllogall">Причина блокировки:</div><textarea class="inpu" name="descr"></textarea><div class="mgcler"></div>
<div class="fllogall"> </div><input type="submit" value="Сохранить" name="save" class="inp" style="margin-top:0px" />
</form>
HTML;
    echohtmlstart('Список заблокированных IP адресов');
    
    $sql_ = $db->super_query("SELECT SQL_CALC_FOUND_ROWS id, descr, date, ip FROM `".PREFIX."_banned` ORDER by `id` DESC", 1);
    if($sql_){
        foreach($sql_ as $row){
            if($row['date'])
                $row['date'] = langdate('j F Y в H:i', $row['date']);
            else
                $row['date'] = 'Неограниченно';
                
            $row['descr'] = stripslashes($row['descr']);
            $short = substr(strip_tags($row['descr']), 0, 50).'..';
            $row['descr'] = myBrRn($row['descr']);
            
            $banList .= <<<HTML
<div style="background:#fff;float:left;padding:5px;width:150px;text-align:center;border-bottom:1px dashed #ccc">{$row['ip']}</div>
<div style="background:#fff;float:left;padding:5px;width:130px;text-align:center;margin-left:1px;border-bottom:1px dashed #ccc">{$row['date']}</div>
<div style="background:#fff;float:left;padding:5px;width:177px;text-align:center;margin-left:1px;border-bottom:1px dashed #ccc" title="{$row['descr']}">{$short}</div>
<div style="background:#fff;float:left;padding:5px;width:100px;text-align:center;margin-left:1px;border-bottom:1px dashed #ccc"><a href="?mod=ban&act=unban&id={$row['id']}">Разблокировать</a></div>
HTML;
        }
    } else
        $banList = '<center><b>Список пуст</b></center>';
        
    echo <<<HTML
<div style="background:#f0f0f0;float:left;padding:5px;width:150px;text-align:center;font-weight:bold;margin-top:-5px">IP</div>
<div style="background:#f0f0f0;float:left;padding:5px;width:130px;text-align:center;font-weight:bold;margin-top:-5px;margin-left:1px">Срок окончания бана</div>
<div style="background:#f0f0f0;float:left;padding:5px;width:177px;text-align:center;font-weight:bold;margin-top:-5px;margin-left:1px">Причина бана</div>
<div style="background:#f0f0f0;float:left;padding:5px;width:100px;text-align:center;font-weight:bold;margin-top:-5px;margin-left:1px">Действие</div>
{$banList}
HTML;
    echohtmlend();
}
?>