Размер файла: 9.96Kb
- <?php
-
- // Устанавливаем константу WBCAT , true
- define( 'WBCAT', 1 );
-
- // Подключаем "верх" каталога
- require_once ('../inc/head.php');
-
- $id = isset($_GET['id']) ? intval($_GET['id']) : '';
- $mod = isset($_GET['mod']) ? $_GET['mod'] : '';
-
- switch ($mod) {
-
- # Баним ip-адрес #
- case 'ban' :
-
- // Заголовок
- echo '<div class="zag">Блокировка ip-адреса </div>';
-
- if (isset($_POST['go'])) {
-
- // Обработка переменных , полученых через форму
- $ip = isset ($_POST['ip']) ? trim($_POST['ip']) : '';
- $ban_term = isset ($_POST['term']) ? intval($_POST['term']) : 1;
- $ban_url = isset ($_POST['url']) ? htmlentities(trim($_POST['url']), ENT_QUOTES, 'UTF-8') : '';
- $reason = isset ($_POST['reason']) ? htmlentities(trim($_POST['reason']), ENT_QUOTES, 'UTF-8') : '';
-
- if (empty($ip)) {
- $error[1] = 'Вы не ввели ip-адрес';
- }
-
- // Обработка ip-адреса
- if (!ereg("^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$", $ip)) {
- $error[2] = 'Неправильно ip-адрес';
- }
-
- if(isset($_SERVER['HTTP_X_REAL_IP'])) {
- $ip2 = $_SERVER['HTTP_X_REAL_IP'];
- } else {
- $ip2 = $_SERVER['REMOTE_ADDR'];
- }
-
- if ($ip == $ip2) {
- $error[3] = 'Вы пытаетесь забанить свой собственный ip-адрес !';
- }
-
- if (!empty($error)) {
- echo '<div class="title">';
- foreach($error as $value) {
- echo "<b>$value</b> <br />";
- }
- echo '</div>';
- }
- else {
-
- $ip = ip2int($ip);
-
- $result = mysql_query("INSERT INTO `ban_ip` SET
- `ip`='" . mysql_real_escape_string($ip). "',
- `type`='" . mysql_real_escape_string($ban_term). "',
- `url`='" . mysql_real_escape_string($ban_url) . "',
- `reason`='" . mysql_real_escape_string($reason) . "',
- `date`='" . $time . "';");
- echo '<div class="title">IP-адрес успешно забанен</div>';
- echo '<div class="main"><a href="ban_ip.php">Список забанненых</a></div>';
- echo '<div class="main"><a href="index.php">Админка</a></div>';
- }
-
- }
- else {
-
- echo '<form action="ban_ip.php?mod=ban" method="post">';
- echo '<div class="title"><u>Введите IP адрес</u><br/>';
- echo '<input type="text" name="ip"/><br />';
- echo '<small>Банить можно один адрес Пример:<br />';
- echo '<font color="#FF0000">10.5.7.1</font> - Баним адрес<br />';
- echo '</small></div>';
- echo '<div class="title"><u>Тип бана</u><br/>';
- echo '<input name="term" type="radio" value="1" checked="checked" />Полная блокировка<br />';
- echo '<input name="term" type="radio" value="2" />Редирект<br />';
- echo '<u>URL редиректа</u><br /><small>[Необязательное поле]</small><br />';
- echo '<input type="text" name="url"/><br />';
- echo '<small[Например http://site.ru]</small></div>';
- echo '<div class="title"><u>Причина бана</u><br /><p><small>[Необязательное поле]</small><br />';
- echo '<textarea cols="20" rows="4" name="reason"></textarea></div>';
- echo '<div class="title"><input type="submit" name="go" value="Банить"/>';
- echo '</form></div>';
- echo '<div class="main"><a href="index.php">Отмена</a><br /><a href="ban_ip.php">Список забанненых</a></div>';
- }
-
- break;
-
- # Удаляем ip из бана #
- case 'del' :
-
- if (isset ($_GET['go'])) {
- mysql_query("DELETE FROM `ban_ip` WHERE `id`='$id' LIMIT 1");
- mysql_query("OPTIMIZE TABLE `ban_ip`");
- echo '<div class="title">Бан успешно удален из базы</div>';
- echo '<div class="title"><a href="ban_ip.php">Продолжить</a><br /><a href="index.php">Админ панель</a></div>';
- }
- else {
- $req = mysql_query("SELECT * FROM `ban_ip` WHERE `id`='" . $id . "' LIMIT 1");
- if (mysql_num_rows($req) != 1) {
- echo '<div class="title">Такого ip нет в базе<br/>';
- echo '<a href="ban_ip.php">Назад</a><br /><a href="index.php">Админ панель</a></div>';
- require_once ('../inc/foot.php');
- exit;
- }
- else {
- echo '<div class="title">Вы действительно хотите разбанить ip-адрес ?</div>';
- echo '<div class="title"><a href="ban_ip.php?mod=del&id='.$id.'&go">Разбанить</a><br /><a href="ban_ip.php">Отмена</a></div>';
- }
- }
-
- break;
-
-
- # Удаляем все забанненые ip-адреса #
- case 'del_all' :
-
- echo '<div class="zag" Удаление всех забанненых ip</div>';
- if (isset($_POST['submit'])) {
- $result = mysql_query("DELETE FROM `ban_ip`;");
- mysql_query("OPTIMIZE TABLE `ban_ip`");
- if ($result == true){
- echo '<div class="title">Все ip-адреса удалены из базы !</div>';
- echo '<div class="title"><a href="ban_ip.php">Продолжить</a><br /><a href="index.php">Админ панель</a></div>';
- }
- else {echo 'Ошибка разбана всех ip . Код ошибки <br/>';
- echo mysql_error();
- }
-
- } else {
-
- echo '<div class="title"><form action="ban_ip.php?mod=del_all" method="post">
- Вы действительно желаете разбанить все ip-адреса ?<br />
- <input type="submit" name="submit" value="Разбанить всех"/>
- </form></div>
- <div class="main"><a href="ban_ip.php">Назад</a></div>';
- }
- break;
-
- # Выводим список забанненых ip #
- default :
-
- // Заголовок
- echo '<div class="zag">Список забанненых ip</div>';
-
- $num = $settings['on_page'];
- $page = intval($_GET['page']);
- $result = mysql_query('SELECT COUNT(*) FROM `ban_ip`');
- $posts = mysql_result($result, 0);
- $total = intval(($posts - 1) / $num) + 1;
- if(empty($page) or $page < 0) $page = 1;
- if($page > $total) $page = $total;
- $start = $page * $num - $num;
- $result = mysql_query('SELECT * FROM `ban_ip` ORDER BY id DESC LIMIT '.$start.', '.$num.'');
- if ($posts > 0 ) {
- while ($m = mysql_fetch_array($result)){
- echo '<div class="title">';
- echo '<u>IP</u>: <b>'.int2ip($m['ip']).'</b>| [id'.$m['id'].']<br/>';
- echo '<u>Тип бана </u>: '.($m['type'] == 1 ? 'полная блокировка' : 'редирект').'<br/>';
- echo '<u>Причина бана</u>: '.(empty($m['reason']) ? 'Причина не указана' : ''.$m['reason'].'').'<br/>';
- echo ''.($m['type'] == 2 ? '<u>Редирект</u> : '.$m['url'].'<br/>' : '').'';
- echo '<u>Дата бана</u>: '.date('d.m.y H:i',$m['date']).'';
- echo '</div>';
- echo '<div class="min"><a href="ban_ip.php?mod=del&id='.$m['id'].'">Разбанить</a></div>';
- // echo '<br/><small><a href="ban_ip.php?do=add&id='.$m['id'].'">Добавить</a>|<a href="ban_ip.php?do=del&id='.$m['id'].'">Удалить</a></small><hr/>';
- }
-
- if ($page != 1) $pervpage = ' <a href= "ban_ip.php?page='. ($page - 1) .'">Назад</a> ';
- // Проверяем нужны ли стрелки вперед
- if ($page != $total) $nextpage = ' <a href="ban_ip.php?page='. ($page + 1) .'">Вперед</a>';
- if ($page !=1 AND $page != $total) $i = '|';
- if ($page - 4 > 0) $first = '<a href="ban_ip.php?page=1">1</a>...';
- if ($page + 4 <= $total) $last = '...<a href="ban_ip.php?page='.$total.'">'.$total.'</a>';
- // Находим две ближайшие станицы с обоих краев, если они есть
- if($page - 2 > 0) $page2left = ' <a href= "ban_ip.php?page='. ($page - 2) .'">'. ($page - 2) .'</a> ';
- if($page - 1 > 0) $page1left = '<a href= "ban_ip.php?page='. ($page - 1) .'">'. ($page - 1) .'</a> ';
- if($page + 2 <= $total) $page2right = ' <a href="ban_ip.php?page='. ($page + 2) .'">'. ($page + 2) .'</a>';
- if($page + 1 <= $total) $page1right = ' <a href="ban_ip.php?page='. ($page + 1) .'">'. ($page + 1) .'</a>';
-
- // Вывод меню
- if ($posts > $num) {
- echo '<div class="title"><small>Навигация :<br/>Страница '.$page.' из '.$total.'</small><br/>'.$pervpage.$i.$nextpage.'<br/>'.$first.$page2left.$page1left.'['.$page.']'.$page1right.$page2right.$last.'</div>';
- }
- }
- else {
- echo '<div class="title">Нет забанненых ip-адресов</div>';
- }
-
- echo '<div class="main"><a href="ban_ip.php?mod=ban">Банить IP</a></div>';
- if ($posts > 1) { echo '<div class="main"><a href="ban_ip.php?mod=del_all">Разабнить все ip</a></div>'; }
- echo '<div class="main"><a href="index.php">Админка</a></div>';
- echo '<div class="zag">Всего забанненых ip : '.$posts.'</div>';
-
- }
-
- // Ссылка на главную
- echo '<div class="main"><a href="'.$settings['url'].'">Главная</a></div>';
-
- // Покдлючаем "низ" каталога
- require_once ('../inc/foot.php');
- ?>