Вход Регистрация
Файл: panel.php
Строк: 338
<?php

require 'sys/sid.php';
require 
'sys/config.php';
include 
'sys/user.php';
include 
'sys/head.php';
include 
'sys/navigator.php';

visit(0, 'panel');

if (
$user['level'] != 2)
{
    
header('location: /');
    die();
}

$q = isset($_GET['q']) ? $_GET['q'] : NULL;
switch(
$q)
{
default:
    echo 
'<div style="padding: 10px;">
          <a href="panel_players">&rarr; Игроки</a><br/>
          <a href="panel_news">&rarr; Новости</a><br/>
          <a href="panel_forum">&rarr; Форум</a><br/>
          <a href="panel_config">&rarr; Конфигурация</a><br/>
          </div>'
;
break;

case 
config:
    
$cfg = mysql_fetch_assoc(mysql_query("SELECT * FROM config WHERE id = '1' LIMIT 1"));

    if (isset(
$_POST['save']))
    {
        
$res = number($_POST['res']);
        
$crystal = number($_POST['crystal']);
        
$online = number($_POST['online']);
        
$scout_percent = number($_POST['scout_percent']);
        
$scout_recovery = number($_POST['scout_recovery']);
        
$thief_percent = number($_POST['thief_percent']);
        
$thief_recovery = number($_POST['thief_recovery']);
        
$saboteur_percent = number($_POST['saboteur_percent']);
        
$saboteur_recovery = number($_POST['saboteur_recovery']);
        
$recruiter_percent = number($_POST['recruiter_percent']);
        
$recruiter_recovery = number($_POST['recruiter_recovery']);

        if (
        empty(
$res)
        || empty(
$crystal)
        || empty(
$online)
        || empty(
$scout_percent)
        || empty(
$scout_recovery)
        || empty(
$thief_percent)
        || empty(
$thief_recovery)
        || empty(
$saboteur_percent)
        || empty(
$saboteur_recovery)
        || empty(
$recruiter_percent)
        || empty(
$recruiter_recovery)
        )
        {
            
err('Значения не могут быть пустыми!');
        }
        else
        {
            
mysql_query("UPDATE config SET
            res = '
$res',
            crystal = '
$crystal',
            online = '
$online',
            scout_percent = '
$scout_percent',
            scout_recovery = '
$scout_recovery',
            thief_percent = '
$thief_percent',
            thief_recovery = '
$thief_recovery',
            saboteur_percent = '
$saboteur_percent',
            saboteur_recovery = '
$saboteur_recovery',
            recruiter_percent = '
$recruiter_percent',
            recruiter_recovery = '
$recruiter_recovery'
            WHERE id = '1' LIMIT 1"
);
            
msg('Изменения сохранены.');
        }
    }

    echo 
'<form method="post" action="panel_config">
          Кол-во ресурсов за 100% здоровья генерала:
          <br/>
          <input type="text" size="4" name="res" value="' 
. $cfg['res'] . '"/>
          <br/>
          Кол-во кристаллов за 100% здоровья генерала: (мгновенное):
          <br/>
          <input type="text" size="4" name="crystal" value="' 
. $cfg['crystal'] . '"/>
          <br/>
          Кол-во кристаллов за 100% здоровья шпиона:
          <br/>
          <input type="text" size="4" name="scout_recovery" value="' 
. $cfg['scout_recovery'] . '"/>
          <br/>
          Кол-во кристаллов за 100% здоровья вора:
          <br/>
          <input type="text" size="4" name="thief_recovery" value="' 
. $cfg['thief_recovery'] . '"/>
          <br/>
          Кол-во кристаллов за 100% здоровья саботажника:
          <br/>
          <input type="text" size="4" name="saboteur_recovery" value="' 
. $cfg['saboteur_recovery'] . '"/>
          <br/>
          Кол-во кристаллов за 100% здоровья вербовщика:
          <br/>
          <input type="text" size="4" name="recruiter_recovery" value="' 
. $cfg['recruiter_recovery'] . '"/>
          <br/>
          Кол-во кристаллов за 1% саботажа:
          <br/>
          <input type="text" size="4" name="saboteur_percent" value="' 
. $cfg['saboteur_percent'] . '"/>
          <br/>
          Кол-во кристаллов за 1% вербовничества:
          <br/>
          <input type="text" size="4" name="recruiter_percent" value="' 
. $cfg['recruiter_percent'] . '"/>
          <br/>
          Кол-во кристаллов за 1% воровства:
          <br/>
          <input type="text" size="4" name="thief_percent" value="' 
. $cfg['thief_percent'] . '"/>
          <br/>
          Кол-во кристаллов за 1% шпионажа:
          <br/>
          <input type="text" size="4" name="scout_percent" value="' 
. $cfg['scout_percent'] . '"/>
          <br/>
          Кол-во кристаллов за 1 час(проведение онлайна):
          <br/>
          <input type="text" size="4" name="online" value="' 
. $cfg['online'] . '"/>
          <br/>
          <input type="submit" name="save" value="Сохранить"/>
          </form>'
;
break;

case 
players:
    echo 
'<form method="post" action="panel_players">
          Найти игрока по нику:
          <br/>
          <input type="text" name="nick"/>
          <br/>
          <input type="submit" name="s" value="Искать"/>
          </form>'
;

    if (isset(
$_POST['s']))
    {
        
$nick = trim(mysql_real_escape_string(char($_POST['nick'], 0)));
        
$search = mysql_query("SELECT id FROM users WHERE nick = '$nick' LIMIT 1");
        if (empty(
$nick))
        {
            
err('Необходимо ввести ник!');
        }
        elseif (
mysql_num_rows($search) == false)
        {
            
err('Игрок с ником ' . $nick . ' не найден!');
        }
        else
        {
            echo 
'Игрок найден.<br/>&nbsp;<a href="userinfo_'.$nick.'">&rarr; ' . $nick . '</a> <a href="updus_'.$nick.'">[упр]</a><br/>';
        }
    }
    else
    {
        
$COUNT = mysql_result(mysql_query("SELECT COUNT(*) FROM users"), 0);
        
$n = new navigator($COUNT, 5, 'panel_players&amp;');
        
$sql = mysql_query("SELECT id, nick FROM users ORDER BY id DESC {$n->limit}");

        while(
$a = mysql_fetch_assoc($sql))
        {
            echo 
'<a href="userinfo_'.$a['nick'].'">' . $a['nick'] . '</a> <a href="updus_'.$a['nick'].'">[упр]</a><br/>';
        }
        echo 
$n->navi();
    }
break;

case 
pnews:
    if (isset(
$_POST['add']))
    {
        
$title = trim(mysql_real_escape_string(char($_POST['title'], 0)));
        
$text = trim(mysql_real_escape_string(char($_POST['text'], 0)));

        if (empty(
$title))
        {
            
err('Необходимо заполнить заголовок!');
        }
        elseif (empty(
$text))
        {
            
err('Необходимо заполнить содержание!');
        }
        else
        {
            
mysql_query("INSERT INTO news SET name = '$title', text = '$text'");
            
header('location: panel_news');
        }
    }

    if (isset(
$_GET['x']))
    {
        
$x = number($_GET['x']);
        
$control = mysql_query("SELECT id FROM news WHERE id = '$x' LIMIT 1");
        if (
mysql_num_rows($control) == false)
        {
            
header('location: panel_news');
        }
        else
        {
            
mysql_query("DELETE FROM news WHERE id = '$x' LIMIT 1");
            
header('location: panel_news');
        }
    }

    echo 
'<form method="post" action="panel_news">
          Заголовок:
          <br/>
          <input type="text" name="title"/>
          <br/>
          Содержание:
          <br/>
          <textarea name="text" cols="20" rows="4"></textarea>
          <br/>
          <input type="submit" name="add" value="Добавить"/>
          </form>' 
. separator;

    
$COUNT = mysql_result(mysql_query("SELECT COUNT(*) FROM news"), 0);
    if (
$COUNT != 0)
    {
        
$n = new navigator($COUNT, 5, 'panel_news&amp;');
        
$sql = mysql_query("SELECT id, name FROM news ORDER BY id DESC {$n->limit}");

        while(
$a = mysql_fetch_assoc($sql))
        {
            echo 
'<a href="deleten'.$a['id'].'">[X]</a> <a href="viewnew'.$a['id'].'">' . $a['name'] . '</a><br/>';
        }
        echo 
$n->navi();
    } else echo 
'Новостей нет.<br/>';
break;

case 
update:
    
$id = char($_GET['id'], 0);
    
$NOT_us = mysql_query("SELECT id, level FROM users WHERE nick = '$id' LIMIT 1");
    if (
mysql_num_rows($NOT_us) == false)
    {
        
err('Игрок не найден!');
    }
    else
    {
        
$sel = mysql_fetch_assoc($NOT_us);

        if (
$sel['id'] != $user['id'] && $sel['id'] == 1 || $user['level'] < $sel['level'] && $sel['id'] != $user['id'])
        {
            
err('Действие невозможно!');
            include 
'sys/foot.php';
            exit();
        }

        if (isset(
$_POST['save']))
        {
            
$nick = trim(mysql_real_escape_string(char($_POST['nick'], 0)));
            
$race = number($_POST['race']);
            
$crystal = number($_POST['crystal']);
            
$food = number($_POST['food']);
            
$tree = number($_POST['tree']);
            
$stone = number($_POST['stone']);
            
$ore = number($_POST['ore']);
            
$gold = number($_POST['gold']);
            
$mod = number($_POST['mod']);
            
$sql = mysql_query("SELECT `id` FROM `users` WHERE `nick` = '$nick' AND id != '$sel[id]' LIMIT 1");
            
$first_l = mb_substr($nick, 0, 1, 'UTF-8');
            
$last_l = mb_substr($nick, -1, 1, 'UTF-8');

            if (empty(
$nick))
            {
                
err('Необходимо указать ник!');
            }
            elseif (!
preg_match('/^([a-z1-9_])+$/ui', $nick))
            {
                
err('Ник содержит запрещенные символы!');
            }
            elseif (
mysql_num_rows($sql) != false)
            {
                
err('Указанный ник уже занят!');
            }
            elseif (
mb_strlen($nick, 'UTF-8') < 4)
            {
                
err('Ник не должен содержать менее 4х знаков!');
            }
            elseif (
mb_strlen($nick, 'UTF-8') > 10)
            {
                
err('Ник не должен превышать 10 знаков!');
            }
            elseif (
ctype_digit($nick))
            {
                
err('Ник не должен состоять из одних цифр!');
            }
            else
            {
                if (
$sel['id'] != $user['id']) $level = ", level = '$mod'";
                
mysql_query("UPDATE users SET
                nick = '
$nick',
                race = '
$race',
                crystal = '
$crystal',
                food = '
$food',
                tree = '
$tree',
                stone = '
$stone',
                ore = '
$ore',
                gold = '
$gold'
                
$level WHERE id = '$sel[id]' LIMIT 1");
                
msg('Сохранено!');
            }
        }

        echo 
'IP: ' . long2ip(user($id, 'ip')) . 
             
'<br/>
              SOFT: ' 
. user($id, 'soft') . separator . '<div style="padding: 5px;">
              &rarr; <a href="panel_possible_'
.$id.'"><u>Возможные ники</u></a><br/>
              &rarr; <a href="panel_arrest_'
.$id.'"><u>Арестовать</u></a></div>' . separator . '
              <form method="post" action="updus_'
.$id.'">
              Ник:
              <br/>
              <input type="text" name="nick" value="' 
. user($id, 'nick') . '"/>
              <br/>
              Раса:
              <br/>
              <select name="race">
              <option ' 
. (user($id, 'race') == 1 ? 'selected' : '') . ' value="1">Люди</option>
              <option ' 
. (user($id, 'race') == 2 ? 'selected' : '') . ' value="2">Некроманты</option>
              </select>
              <br/>
              Кристаллы:
              <br/>
              <input type="text" name="crystal" size="3" value="' 
. user($id, 'crystal') . '"/>
              <br/>
              Еда:
              <br/>
              <input type="text" name="food" size="3" value="' 
. user($id, 'food') . '"/>
              <br/>
              Дерево:
              <br/>
              <input type="text" name="tree" size="3" value="' 
. user($id, 'tree') . '"/>
              <br/>
              Камень:
              <br/>
              <input type="text" name="stone" size="3" value="' 
. user($id, 'stone') . '"/>
              <br/>
              Руда:
              <br/>
              <input type="text" name="ore" size="3" value="' 
. user($id, 'ore') . '"/>
              <br/>
              Золото:
              <br/>
              <input type="text" name="gold" size="3" value="' 
. user($id, 'gold') . '"/>
              ' 
. ($sel['id'] != $user['id'] ? '<br/>
              <input type="radio" ' 
. (user($id, 'level') == 0 ? 'checked' : '') . ' name="mod" value="0"/> По умолчанию
              <br/>
              <input type="radio" ' 
. (user($id, 'level') == 1 ? 'checked' : '') . ' name="mod" value="1"/> Модератор
              <br/>
              <input type="radio" ' 
. (user($id, 'level') == 2 ? 'checked' : '') . ' name="mod" value="2"/> Администратор' : '') . '
              <br/>
              <input type="submit" name="save" value="Сохранить"/>
              </form>'
;
    }
break;

case 
possible:
    
$id = char($_GET['id'], 0);
    
$NOT_us = mysql_query("SELECT ip FROM users WHERE nick = '$id' LIMIT 1");
    if (
mysql_num_rows($NOT_us) == false)
    {
        
err('Игрок не найден!');
    }
    else
    {
        
$sel = mysql_fetch_assoc($NOT_us);
        
$_IP = ip2long($sel['ip']);
        
$sear = mysql_query("SELECT nick FROM users WHERE ip = '" . ip2long($sel['ip']) . "' AND id != '" . user($id, 'id') . "'");

        if (
mysql_num_rows($sear) != false)
        {
            while(
$a = mysql_fetch_assoc($sear))
            {
                echo 
'<a href="userinfo_'.$a['nick'].'">' . $a['nick'] . '</a> <a href="updus_'.$a['nick'].'">[упр]</a><br/>';
            }
        } else echo 
'Никого не найдено.';
    }
break;

case 
arrest:
    
$id = char($_GET['id'], 0);
    
$NOT_us = mysql_query("SELECT id, level, ban FROM users WHERE nick = '$id' LIMIT 1");
    
$sel = mysql_fetch_assoc($NOT_us);

    if (
$sel['id'] != $user['id'] && $sel['id'] == 1 || $user['level'] < $sel['level'] && $sel['id'] != $user['id'])
    {
        
err('Действие невозможно!');
    }
    elseif (
mysql_num_rows($NOT_us) == false)
    {
        
err('Игрок не найден!');
    }
    elseif (
$sel['ban'] > $rtime)
    {
        
err('Игрок уже арестован!');
    }
    else
    {
        if (isset(
$_POST['ok']))
        {
            
$what = number($_POST['what']);
            
$term = number($_POST['term']);
            
$ferever = number($_POST['ferever']);

            if (empty(
$what))
            {
                
err('Необходимо выбрать причину ареста!');
            }
            elseif (empty(
$term) && $forever == 0)
            {
                
err('Необходимо указать срок ареста!');
            }
            else
            {
                if (
$what == 1) $why = 'Оскорбления';
                if (
$what == 2) $why = 'Мошенничество';
                if (
$what == 3) $why = 'Мульт';
                if (
$what == 4) $why = 'Использование багов';
                if (
$what == 5) $why = 'Не корректный никнейм';
                if (
$what == 6) $why = 'Спам/реклама';

                if (
$forever == 1) $ban = "forever = '1',";
                else 
$ban = "ban = '" . ($rtime + ($term * 60)) . "', breach = breach + '1',";

                
mysql_query("UPDATE users SET $ban why = '$why' WHERE id = '$sel[id]' LIMIT 1");
                
msg('Игрок арестован.');
            }
        }

        echo 
'<form method="post" action="panel_arrest_'.$id.'">
              За что:
              <br/>
              <select name="what">
              <option value="1">Оскорбления</option>
              <option value="2">Мошенничество</option>
              <option value="3">Мульт</option>
              <option value="4">Использование багов</option>
              <option value="5">Не корректный никнейм</option>
              <option value="6">Спам/реклама</option>
              </select>
              <br/>
              Срок: (мин)
              <br/>
              <input type="text" size="3" name="term"/>
              <br/>
              <input type="checkbox" name="ferever" value="1"/> Пожизненно
              <br/>
              <input type="submit" name="ok" value="Арестовать"/>
              </form>'
;
    }
break;

case 
forum:
    if (isset(
$_POST['ok']))
    {
        
$name = trim(mysql_real_escape_string(char($_POST['name'], 0)));
        
$double = mysql_num_rows(mysql_query("SELECT id FROM forum_r WHERE name = '$name' LIMIT 1"));
        if (empty(
$name))
        {
            
err('Необходимо заполнить название раздела!');
        }
        elseif (
$double != false)
        {
            
err('Раздел с таким названием уже есть!');
        }
        else
        {
            
mysql_query("INSERT INTO forum_r SET name = '$name'");
            
msg('Раздел создан.');
        }
    }

    if (isset(
$_GET['x']))
    {
        
$x = number($_GET['x']);
        
$c = mysql_query("SELECT id FROM forum_r WHERE id = '$x' LIMIT 1");
        if (
mysql_num_rows($c) == false)
        {
            
err('Раздела не существует!');
        }
        else
        {
            while(
$a = mysql_fetch_assoc($c))
            {
                
mysql_query("DELETE FROM forum_t WHERE uid = '$a[id]'");
                
mysql_query("DELETE FROM forum_m WHERE rid = '$a[id]'");
            }
            
mysql_query("DELETE FROM forum_r WHERE id = '$x' LIMIT 1");
            
msg('Раздел удален.');
        }
    }

    if (isset(
$_GET['e']))
    {
        
$e = number($_GET['e']);
        
$c = mysql_query("SELECT name FROM forum_r WHERE id = '$e' LIMIT 1");
        if (
mysql_num_rows($c) == false)
        {
            
err('Раздела не существует!');
        }
        else
        {
            if (isset(
$_POST['save']))
            {
                
$name = trim(mysql_real_escape_string(char($_POST['name'], 0)));
                
$double = mysql_num_rows(mysql_query("SELECT id FROM forum_r WHERE name = '$name' AND id != '$e' LIMIT 1"));
                if (empty(
$name))
                {
                    
err('Необходимо заполнить название раздела!');
                }
                elseif (
$double != false)
                {
                    
err('Раздел с таким названием уже есть!');
                }
                else
                {
                    
mysql_query("UPDATE forum_r SET name = '$name' WHERE id = '$e' LIMIT 1");
                    
header('location: panel_forum');
                }
            }

            
$edit = mysql_fetch_assoc($c);
            echo 
'<form method="post" action="panel_f_e'.$e.'">
                  Изменить название раздела:
                  <br/>
                  <input type="text" name="name" value="'
.$edit['name'].'"/>
                   <br/>
                    <input type="submit" name="save" value="Принять"/>
                  </form>'
;
        }
    }

    if (!isset(
$_GET['e']))
    {
        echo 
'<form method="post" action="panel_forum">
              Новый раздел:
              <br/>
              <input type="text" name="name"/>
               <br/>
               <input type="submit" name="ok" value="Создать"/>
               </form>'
;

        
$num = mysql_result(mysql_query("SELECT COUNT(*) FROM forum_r"), 0);
        if (
$num != 0)
        {
            
$n = new navigator($num, 5, 'panel_forum&amp;');
            
$look = mysql_query("SELECT * FROM forum_r ORDER BY id ASC {$n->limit}");
            while(
$q = mysql_fetch_assoc($look))
            {
                echo 
'<div style="padding:5px;"><a href="panel_f_d'.$q['id'].'">[X]</a> <b>' . $q['name'] . '</b><br/><a href="panel_f_e'.$q['id'].'">[Изм]</a></div>';
            }
            echo 
$n->navi();
        } else echo 
'Разделы не созданы.<br/>';
    }
break;

}

if (isset(
$_GET['q'])) echo '<br/><a href="panel.php">Вернуться</a><br/>';
echo 
'<a href="/">На главную</a>';
include 
'sys/foot.php';
?>
Онлайн: 0
Реклама