Вход Регистрация
Файл: 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($COUNT5'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($COUNT5'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'] == || $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($nick01'UTF-8');
            
$last_l mb_substr($nick, -11'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') == 'selected' '') . ' value="1">Люди</option>
              <option ' 
. (user($id'race') == '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') == 'checked' '') . ' name="mod" value="0"/> По умолчанию
              <br/>
              <input type="radio" ' 
. (user($id'level') == 'checked' '') . ' name="mod" value="1"/> Модератор
              <br/>
              <input type="radio" ' 
. (user($id'level') == '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'] == || $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($num5'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
Реклама