Файл: 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">→ Игроки</a><br/>
<a href="panel_news">→ Новости</a><br/>
<a href="panel_forum">→ Форум</a><br/>
<a href="panel_config">→ Конфигурация</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/> <a href="userinfo_'.$nick.'">→ ' . $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&');
$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&');
$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;">
→ <a href="panel_possible_'.$id.'"><u>Возможные ники</u></a><br/>
→ <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&');
$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';
?>