Файл: profiwm.pp.ua/admin.php
Строк: 1486
<?php
require 'system/sid.php';
require 'system/config.php';
include 'system/user.php';
whorm(0, 'adminka');
include 'system/head.php';
include 'system/navigator.php';
if ($user['level'] != 4 && $user['level'] != 5) {
header('Location: index.php?');
die();
}
$do = isset($_GET['do']) ? $_GET['do'] : NULL;
switch($do) {
default:
echo $div_title . 'Админ-панель' . $div_end;
if ($user['level'] == 5) {
echo '<div class="mlink"><a href="admin.php?do=users">» Управление пользователями</a></div>
<div class="mlink"><a href="admin.php?do=smiles">» Управление смайлами</a></div>
<div class="mlink"><a href="admin.php?do=chat">» Управление чатом</a></div>
<div class="mlink"><a href="forum/admin.php?">» Управление форумом</a></div>
<div class="mlink"><a href="fo/admin.php?">» Управление обменником</a></div>
<div class="mlink"><a href="loads/admin.php?">» Управление зц</a></div>
<div class="mlink"><a href="admin.php?do=news">» Управление новостями</a></div>
<div class="mlink"><a href="admin.php?do=gazeta">» Управление газетой</a></div>
<div class="mlink"><a href="admin.php?do=antirekl">» Управление антирекламой</a></div>
<div class="mlink"><a href="admin.php?do=sys">» Управление системой</a></div>
<div class="mlink"><a href="admin.php?do=reklama">» Управление рекламой</a></div>
<div class="mlink"><a href="admin.php?do=letters">» Управление записками</a></div>
<div class="mlink"><a href="admin.php?do=bots">» Управление ботами</a></div>
<div class="mlink"><a href="admin.php?do=photos">» Управление фотографиями</a></div>
<div class="mlink"><a href="admin.php?do=adm_logs">» Управление логами</a></div>';
} elseif ($user['level'] == 4) {
echo '<div class="mlink"><a href="admin.php?do=users">» Управление пользователями</a></div>
<div class="mlink"><a href="admin.php?do=smiles">» Управление смайлами</a></div>
<div class="mlink"><a href="admin.php?do=chat">» Управление чатом</a></div>
<div class="mlink"><a href="forum/admin.php?">» Управление форумом</a></div>
<div class="mlink"><a href="fo/admin.php?">» Управление обменником</a></div>
<div class="mlink"><a href="admin.php?do=news">» Управление новостями</a></div>
<div class="mlink"><a href="admin.php?do=gazeta">» Управление газетой</a></div>
<div class="mlink"><a href="admin.php?do=letters">» Управление записками</a></div>';
}
break;
//Управление газетой
case gazeta:
echo $div_title . 'Управление газетой' . $div_end;
$num_r = mysql_result(mysql_query("SELECT COUNT(id) FROM `gazeta_razdel`"), 0);
$num_j = mysql_result(mysql_query("SELECT COUNT(id) FROM `users` WHERE `journalist` = '1'"), 0);
echo '» <a href="admin.php?do=gazeta_r">Разделы</a> (' . $num_r . ')<br/>
» <a href="admin.php?do=gazeta_j">Журналисты</a> (' . $num_j . ')<br/>';
break;
// Газета
case gazeta_r:
echo $div_title . 'Разделы' . $div_end;
echo '<FORM method="POST" action="admin.php?do=gazeta_r">
<label for="q">Новый раздел</label>:
<br/>
<input type="text" id="q" name="new"/>
<br/>
<input type="submit" name="create" value="Создать"/>
</FORM>' . $block;
// создание раздела
if (isset($_POST['create'])) {
$new = trim(mysql_real_escape_string(check($_POST['new'])));
$em = mysql_query("SELECT `id` FROM `gazeta_razdel` WHERE `name` = '$new' LIMIT 1");
if (empty($new)) {
err('Пустое название раздела!');
} elseif (mysql_num_rows($em) != FALSE) {
err('Раздел с таким названием уже создан!');
} else {
mysql_query("INSERT INTO `gazeta_razdel` SET `name` = '$new'");
header('Location: admin.php?do=gazeta_r');
}
}
// удаление раздела
if (isset($_GET['x'])) {
$x = my_int($_GET['x']);
$sql = mysql_query("SELECT `id` FROM `gazeta_razdel` WHERE `id` = '$x' LIMIT 1");
if (mysql_num_rows($sql) == FALSE) {
err('Раздел не найден!');
} else {
$in = mysql_fetch_assoc(mysql_query("SELECT `path` FROM `gazeta_article` WHERE `uid` = '$x' LIMIT 1"));
// удаление вложеных файлов
if (file_exists($in['path'])) unlink($in['path']);
// удаление статей
mysql_query("DELETE FROM `gazeta_article` WHERE `uid` = '$x'");
// удаление раздела
mysql_query("DELETE FROM `gazeta_razdel` WHERE `id` = '$x' LIMIT 1");
header('Location: admin.php?do=gazeta_r');
}
}
// вывод разделов
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `gazeta_razdel`"), 0);
if ($count != FALSE) {
$n = new navigator($count, 10, '?do=gazeta_r');
$view = mysql_query("SELECT `gazeta_razdel`.*,(SELECT COUNT(id) FROM `gazeta_article` WHERE `gazeta_article`.`uid` = `gazeta_razdel`.`id`) AS c FROM `gazeta_razdel` ORDER BY `gazeta_razdel`.`id` DESC {$n->limit}");
$i = 0;
while($a = mysql_fetch_assoc($view)) {
$d = '<a href="admin.php?do=gazeta_r&x='.$a['id'].'"><img src="ico/delete.gif" alt=""/></a> ';
$e = '<a href="admin.php?do=gazeta_edit&x='.$a['id'].'"><img src="ico/edit.gif" alt=""/></a> ';
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo $e . $d . $a['name'] . ' (' . $a['c'] . ')' . $div_end;
}
echo $n->navi();
} else {
echo 'Разделы не созданы.<br/>';
}
break;
// Редактирование раздела газеты
case gazeta_edit:
echo $div_title . 'Изменить' . $div_end;
$x = my_int($_GET['x']);
$sql = mysql_query("SELECT * FROM `gazeta_razdel` WHERE `id` = '$x' LIMIT 1");
if (isset($_POST['go'])) {
$edit = trim(mysql_real_escape_string(check($_POST['edit'])));
$em = mysql_query("SELECT `id` FROM `gazeta_razdel` WHERE `name` = '$new' LIMIT 1");
if (empty($edit)) {
err('Пустое название раздела!');
} elseif (mysql_num_rows($edit) != FALSE) {
err('Раздел с таким названием уже создан!');
} else {
mysql_query("UPDATE `gazeta_razdel` SET `name` = '$edit' WHERE `id` = '$x' LIMIT 1");
header('Location: admin.php?do=gazeta_r');
}
}
if (mysql_num_rows($sql) == FALSE) {
err('Раздел не найден!');
} else {
$in = mysql_fetch_assoc($sql);
echo '<FORM method="POST" action="admin.php?do=gazeta_edit&x='.$x.'">
<label for="q">Редактировать</label>:
<br/>
<input type="text" id="q" name="edit" value="' . $in['name'] . '"/>
<br/>
<input type="submit" name="go" value="Изменить"/>
</FORM>';
}
break;
// Журналисты
case gazeta_j:
echo $div_title . 'Журналисты' . $div_end;
echo '<FORM method="POST" action="admin.php?do=gazeta_j">
<label for="q">ID будущего журналиста</label>:
<br/>
<input type="text" id="q" name="new" size="3"/>
<br/>
<input type="submit" name="ok" value="Назначить"/>
</FORM>
' . $block . '
Список журналистов:
<br/>';
// удаление журналиста
if (isset($_GET['x'])) {
$x = my_int($_GET['x']);
if (!user_inf($x)) {
err('Такого пользователя не существует!');
} elseif (user_inf($x, 'journalist') != 1) {
err('Этот пользователь не является журналистом!');
} else {
mysql_query("UPDATE `users` SET `journalist` = '0' WHERE `id` = '$x' LIMIT 1");
$mess = us($user['id']) . ' снял с Вас журналиста!';
mysql_query("INSERT INTO `letters` (`id`,`who`,`idwho`,`message`,`data`,`read`,`mod`)
VALUES (0,'0','$x','$mess','" . time() . "','0','i')");
header('Location: admin.php?do=gazeta_j');
}
}
// назначение журналиста
if (isset($_POST['ok'])) {
$new = my_int($_POST['new']);
if (!user_inf($new)) {
err('Такого пользователя не существует!');
} elseif (user_inf($new, 'journalist') == 1) {
err('Этот пользователь уже является журналистом!');
} else {
mysql_query("UPDATE `users` SET `journalist` = '1' WHERE `id` = '$new' LIMIT 1");
$mess = us($user['id']) . ' сделал Вас журналистом!';
mysql_query("INSERT INTO `letters` (`id`,`who`,`idwho`,`message`,`data`,`read`,`mod`)
VALUES (0,'0','$new','$mess','" . time() . "','0','i')");
header('Location: admin.php?do=gazeta_j');
}
}
// вывод журналистов
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `users` WHERE `journalist` = '1'"), 0);
if ($count != FALSE) {
$n = new navigator($count, 10, '?do=gazeta_j');
$view = mysql_query("SELECT * FROM `users` WHERE `journalist` = '1' ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($a = mysql_fetch_assoc($view)) {
$d = ' <a href="admin.php?do=gazeta_j&x='.$a['id'].'"><img src="ico/delete.gif" alt=""/></a>';
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo us($a['id']) . $d . $div_end;
}
echo $n->navi();
} else {
echo 'Журналистов еще нет.<br/>';
}
break;
//Управление логами
case adm_logs:
if ($user['level'] == 4) {
header('Location: admin.php?');
die();
}
echo $div_title . 'Управление логами' . $div_end;
echo '» <a href="admin.php?do=log_delete">Логи удалений ников</a><br/>
» <a href="admin.php?do=log_banip">Логи баннов IP</a><br/>
» <a href="admin.php?do=log_bannick">Логи баннов ников</a><br/>';
break;
//Логи удалений ников
case log_delete:
if ($user['level'] == 4) {
header('Location: admin.php?');
die();
}
if (isset($_GET['clean']))
{
mysql_query("DELETE FROM `adm_logs` WHERE `type` = 'delete'");
header('Location: admin.php?do=log_delete');
}
echo $div_title . 'Логи удалений ников' . $div_end;
$sel = mysql_result(mysql_query("SELECT COUNT(id) FROM `adm_logs` WHERE `type` = 'delete'"), 0);
if ($sel != FALSE) {
$n = new navigator($sel, 10, '?do=log_delete&');
$l = mysql_query("SELECT * FROM `adm_logs` WHERE `type` = 'delete' ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($a = mysql_fetch_assoc($l)) {
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo 'Удален: ' . $a['user'] . '<br/>
Удалил: ' . cvetnik($a['who']) . '<br/>
Дата: ' . date('d-m-Y, H:i', $a['date']) . $div_end;
}
echo $n->navi();
} else {
echo 'Логи пустые.<br/>';
}
if ($sel != FALSE) echo '[<a href="admin.php?do=log_delete&clean">Очистить</a>]';
break;
//Логи баннов IP
case log_banip:
if ($user['level'] == 4) {
header('Location: admin.php?');
die();
}
if (isset($_GET['clean']))
{
mysql_query("DELETE FROM `adm_logs` WHERE `type` = 'bann_ip'");
header('Location: admin.php?do=log_banip');
}
echo $div_title . 'Логи баннов IP' . $div_end;
$sel = mysql_result(mysql_query("SELECT COUNT(id) FROM `adm_logs` WHERE `type` = 'bann_ip'"), 0);
if ($sel != FALSE) {
$n = new navigator($sel, 10, '?do=log_banip&');
$l = mysql_query("SELECT * FROM `adm_logs` WHERE `type` = 'bann_ip' ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($a = mysql_fetch_assoc($l)) {
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo 'Забанен: ' . cvetnik($a['user']) . '<br/>
Блокировал: ' . cvetnik($a['who']) . '<br/>
Дата: ' . date('d-m-Y, H:i', $a['date']) . $div_end;
}
echo $n->navi();
} else {
echo 'Логи пустые.<br/>';
}
if ($sel != FALSE) echo '[<a href="admin.php?do=log_banip&clean">Очистить</a>]';
break;
//Логи баннов ников
case log_bannick:
if ($user['level'] == 4) {
header('Location: admin.php?');
die();
}
if (isset($_GET['clean'])) {
mysql_query("DELETE FROM `adm_logs` WHERE `type` = 'bann_nick'");
header('Location: admin.php?do=log_bannick');
}
echo $div_title . 'Логи баннов ников' . $div_end;
$sel = mysql_result(mysql_query("SELECT COUNT(id) FROM `adm_logs` WHERE `type` = 'bann_nick'"), 0);
if ($sel != FALSE) {
$n = new navigator($sel, 10, '?do=log_bannick&');
$l = mysql_query("SELECT * FROM `adm_logs` WHERE `type` = 'bann_nick' ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($a = mysql_fetch_assoc($l)) {
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo 'Забанен: ' . cvetnik($a['user']) . '<br/>
Блокировал: ' . cvetnik($a['who']) . '<br/>
Дата: ' . date('d-m-Y, H:i', $a['date']) . $div_end;
}
echo $n->navi();
} else {
echo 'Логи пустые.<br/>';
}
if ($sel != FALSE) echo '[<a href="admin.php?do=log_bannick&clean">Очистить</a>]';
break;
//Управление фотками
case photos:
if ($user['level'] == 4) {
header('Location: admin.php?');
die();
}
echo $div_title . 'Управление фотографиями' . $div_end;
$num = mysql_result(mysql_query("SELECT COUNT(id) FROM `albums` WHERE `type` = 'f' AND `block` = '1'"), 0);
// восстановление фотки
if (isset($_GET['n'])) {
$n = my_int($_GET['n']);
$pr = mysql_query("SELECT `id`, `cat`, `user` FROM `albums` WHERE `id` = '$n' AND `type` = 'f' AND `block` = '1' LIMIT 1");
if (mysql_num_rows($pr) == FALSE) {
err('Такой фотографии не существует или она не заблокирована!');
} else {
$in = mysql_fetch_assoc($pr);
$mess = 'Ваше <a href="photo.php?do=photo&a='.$in['cat'].'&p='.$n.'">фото</a> было разблокировано Администратором ' . us($user['id']);
mysql_query("INSERT INTO `letters` (`id`,`who`,`idwho`,`message`,`data`,`read`,`mod`)
VALUES (0,'0','$in[user]','$mess','" . time() . "','0','i')");
mysql_query("UPDATE `albums` SET `block` = '0' WHERE `type` = 'f' AND `id` = '$n' LIMIT 1");
header('Location: admin.php?do=photos&ok');
}
}
if (isset($_GET['ok'])) msg('Фотография разблокирована!');
if ($num != FALSE) {
$n = new navigator($num, 10, '?do=photos&');
$sql = mysql_query("SELECT * FROM `albums` WHERE `type` = 'f' AND `block` = '1' ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($a = mysql_fetch_assoc($sql)) {
$now = '<br/>[<a href="admin.php?do=photos&n='.$a['id'].'">Разблокировать</a>]';
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo '<img src="resize.php?img='.$a['path'].'&width=75&height=0&i='.$a['rotate'].'" alt=""/>
<br/>
Заблокировал: ' . cvetnik($a['who_block']) . '
<br/>
Кому: ' . cvetnik($a['user']) . '
<br/>
Причина блока: ' . $a['why_block'] . $now . $div_end;
}
echo $n->navi();
} else {
echo 'Заблокированых фотографий не найдено!<br/>';
}
break;
//Управление ботами
case bots:
if ($user['level'] == 4) {
header('Location: admin.php?');
die();
}
echo $div_title . 'Управление ботами' . $div_end . '
» <a href="admin.php?do=dialog">Диалог бота (Терпила)</a><br/>';
break;
//Управление пользователями
case users:
echo $div_title . 'Управление пользователями' . $div_end;
echo '<FORM method="POST" action="admin.php?do=update">
<label for="q">Ник|ID</label>:
<br/>
<input type="text" id="q" name="nick" maxlength="15"/>
<br/>
<input type="submit" name="upd" value="Смотреть"/>
</FORM>';
$reg = mysql_result(mysql_query("SELECT COUNT(id) FROM `users` WHERE `mod_reg` = '1'"), 0);
echo '<a href="admin.php?do=onreg">Одобрить рег-и</a> (' . $reg . ')<br/>';
$count_us = mysql_result(mysql_query("SELECT COUNT(id) FROM `users`"), 0);
$count_us_new = mysql_result(mysql_query("SELECT COUNT(id) FROM `users` WHERE `date` = '" . date('d-m-y') . "'"), 0);
$newUs = ($count_us_new != false) ? ' <span style="color:#FF0000;">+' . $count_us_new . '</span>' : '';
echo '<a href="admin.php?do=view_us">Пользователей</a> (' . $count_us . ')' . $newUs . '<br/>';
$bannip = mysql_result(mysql_query("SELECT COUNT(id) FROM `bannlist`"), 0);
echo '<a href="admin.php?do=onbannip">Забаненые IP</a> (' . $bannip . ')<br/>';
$bannus = mysql_result(mysql_query("SELECT COUNT(id) FROM `users` WHERE `kik` > '" . time() . "'"), 0);
echo '<a href="admin.php?do=onbannus">Забаненые ники</a> (' . $bannus . ')<br/>';
break;
//просмотр юзеров
case view_us:
echo $div_title . 'Просмотр пользователей' . $div_end;
$look = mysql_result(mysql_query("SELECT COUNT(id) FROM `users`"), 0);
if ($look != FALSE) {
$n = new navigator($look, 10, '?do=view_us&');
$u = mysql_query("SELECT * FROM `users` ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($q = mysql_fetch_assoc($u)) {
$ap = ' <a href="admin.php?do=update&nick='.$q['id'].'">[апдейт]</a>';
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo us($q['id']) . $ap . $div_end;
}
echo $n->navi();
} else {
echo 'Пользователей нет!<br/>';
}
break;
// список забаненых IP
case onbannip:
echo $div_title . 'Забаненые IP' . $div_end;
if (isset($_GET['del'])) {
$del = my_int($_GET['del']);
$e = mysql_query("SELECT `id` FROM `bannlist` WHERE `id` = '$del' LIMIT 1");
if (mysql_num_rows($e) == FALSE) {
err('Ошибка!');
} else {
mysql_query("DELETE FROM `bannlist` WHERE `id` = '$del' LIMIT 1");
header('Location: admin.php?do=onbannip');
}
}
$ban = mysql_result(mysql_query("SELECT COUNT(id) FROM `bannlist`"), 0);
if ($ban != FALSE) {
$n = new navigator($ban, 10, '?do=onbannip&');
$view = mysql_query("SELECT * FROM `bannlist` ORDER BY `who` DESC {$n->limit}");
$i = 0;
while($a = mysql_fetch_assoc($view)) {
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo us($a['who']) . '<br/>' . $a['ip'] . ' <a href="admin.php?do=onbannip&del='.$a['id'].'">
<img src="ico/delete.gif" alt="x"/></a>' . $div_end;
}
echo $n->navi();
} else {
echo 'Список забаненых IP пуст.<br/>';
}
break;
// список забаненых ников
case onbannus:
echo $div_title . 'Забаненые ники' . $div_end;
if (isset($_GET['del'])) {
$del = my_int($_GET['del']);
if (!user_inf($del)) {
err('Ошибка!');
} else {
mysql_query("UPDATE `users` SET `kik` = '', `whokik` = '', `whykik` = '' WHERE `id` = '$del' LIMIT 1");
header('Location: admin.php?do=onbannus');
}
}
$ban = mysql_result(mysql_query("SELECT COUNT(id) FROM `users` WHERE `kik` > '" . time() . "'"), 0);
if ($ban != FALSE) {
$n = new navigator($ban, 10, '?do=onbannus&');
$view = mysql_query("SELECT * FROM `users` WHERE `kik` > '" . time() . "' ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($a = mysql_fetch_assoc($view)) {
$kto = (empty($a['whokik'])) ? 'Система' : us($a['whokik']);
$_d = '<a href="admin.php?do=onbannus&del='.$a['id'].'"><img src="ico/delete.gif" alt="x"/></a> ';
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo $_d . us($a['id']) . ' (' . kikt($a['kik']) . ') забанил: ' . $kto . '<br/>
за: ' . $a['whykik'] . $div_end;
}
echo $n->navi();
} else {
echo 'Список забаненых ников пуст.<br/>';
}
break;
// апдейт
case update:
echo $div_title . 'Апдейт' . $div_end;
if (isset($_GET['ok'])) msg('Изменения успешно сохранены!');
if (!ctype_digit($_REQUEST['nick'])) {
$nick = trim(mysql_real_escape_string(check($_REQUEST['nick'])));
$select = mysql_query("SELECT * FROM `users` WHERE `user` = '$nick' LIMIT 1");
} elseif (ctype_digit($_REQUEST['nick'])) {
$nick = my_int($_REQUEST['nick']);
$select = mysql_query("SELECT * FROM `users` WHERE `id` = '$nick' LIMIT 1");
}
$inf = mysql_fetch_assoc($select);
if ($inf['id'] != $user['id'] && $inf['id'] == 1 || $user['level'] < $inf['level'] && $inf['id'] != $user['id']) {
err('У Вас нет прав для этого действия!');
include 'system/foot.php';
exit();
}
if (empty($nick) || mysql_num_rows($select) == FALSE) {
err('Пользователь не найден!');
} else {
echo $div_tworazdel . us($inf['id']) . ' найден(а)!
' . $div_end . $div_razdel . '
IP: ' . long2ip($inf['user_ip']) . '<br/>
SOFT: ' . $inf['user_soft'] . '
' . $div_end . $block . '
<FORM method="POST" action="admin.php?do=up_ok">
<label>Ник:</label><br/>
<input type="text" name="nikname" maxlength="15" value="' . $inf['user'] . '"/>
<br/>';
if ($user['id'] == 1)
{
echo '<label>Пароль:</label><br/>
<input type="text" name="password" maxlength="25" value="' . $inf['pass'] . '"/>
<br/>';
}
echo '<label>Ответов в чате:</label><br/>
<input type="text" name="credits" size="4" value="' . $inf['credits'] . '"/>';
if ($inf['id'] != $user['id']) {
echo '<br/><label>Уровень:</label><br/>
<select name="level">';
if ($user['level'] == 4) {
if ($inf['level'] == 0) $lname = 'Пользователь';
elseif ($inf['level'] == 1) $lname = 'Стажер';
elseif ($inf['level'] == 2) $lname = 'Модератор';
elseif ($inf['level'] == 3) $lname = 'Ст.Модератор';
elseif ($inf['level'] == 4) $lname = 'Администратор';
echo '<option selected="selected" value="'.$inf['level'].'">' . $lname . '</option>
<option value="0">Пользователь</option>
<option value="1">Стажер</option>
<option value="2">Модератор</option>
<option value="3">Ст.Модератор</option>';
} elseif ($user['level'] == 5) {
if ($inf['level'] == 0) $lname = 'Пользователь';
elseif ($inf['level'] == 1) $lname = 'Стажер';
elseif ($inf['level'] == 2) $lname = 'Модератор';
elseif ($inf['level'] == 3) $lname = 'Ст.Модератор';
elseif ($inf['level'] == 4) $lname = 'Администратор';
elseif ($inf['level'] == 5) $lname = 'Ст.Администратор';
echo '<option selected="selected" value="'.$inf['level'].'">' . $lname . '</option>
<option value="0">Пользователь</option>
<option value="1">Стажер</option>
<option value="2">Модератор</option>
<option value="3">Ст.Модератор</option>
<option value="4">Администратор</option>
<option value="5">Ст.Администратор</option>';
}
echo '</select>';
}
echo '<br/>
<input type="hidden" name="nick" value="' . $inf['id'] . '"/>
<input type="submit" name="ok" value="Сохранить"/>
</FORM>';
if ($inf['id'] != $user['id']) {
echo '<label>Действие:</label><br/>
<FORM method="POST" action="admin.php?do=us_adult">
<select name="adult">
<option value="1">Забанить ник</option>
<option value="2">Забанить ip</option>
<option value="3">Удалить ник</option>
<option value="4">Поиск по IP</option>
<option value="5">Поиск по IP (подсеть)</option>
</select>
<br/>
<input type="hidden" name="nick" value="' . $inf['id'] . '"/>
<input type="submit" name="ok" value="Далее"/>
</FORM>';
}
}
break;
// завершения апдейта
case up_ok:
$nick = my_int($_POST['nick']);
$nikname = trim(mysql_real_escape_string(check($_POST['nikname'])));
if ($nick != $user['id']) {
$level = my_int($_POST['level']);
$queryLevel = ", `level` = '$level'";
}
if ($user['id'] == 1) {
$password = trim(mysql_real_escape_string(check($_POST['password'])));
$queryPass = ", `pass` = '$password'";
}
$first_l = mb_substr($nikname, 0, 1, 'UTF8');
$last_l = mb_substr($nikname, -1, 1, 'UTF8');
$latuser = mb_strtolower($nikname, 'UTF8');
$sql = mysql_query("SELECT `id` FROM `users` WHERE `latuser` = '$latuser' AND `id` != '$nick' LIMIT 1");
if (!preg_match('#^([a-zа-яё1-9_])+$#ui', $nikname)) $error .= 'Ник содержит запрещенные символы!';
elseif (!preg_match('#^([a-zа-яё1-9])+$#ui', $first_l)) $error .= 'Ник должен начинаться с буквы или цифры!';
elseif (!preg_match('#^([a-zа-яё1-9])+$#ui', $last_l)) $error .= 'Ник должен заканчиваться буквой или цифрой!';
elseif (preg_match('/[a-z]/i', $nikname) && preg_match('/[а-яё]/siu', $nikname)) $error .= 'Ник не может одновременно содержать рус. и англ. буквы!';
elseif (mysql_num_rows($sql) != false) $error .= 'Указанный Вами ник <b>' . $nikname . '</b> уже занят!';
elseif (mb_strlen($nikname, 'UTF-8') < 3) $error .= 'Ник не должен содержать менее 3х знаков!';
elseif (mb_strlen($nikname, 'UTF-8') > 15) $error .= 'Ник не должен превышать 15 знаков!';
elseif (ctype_digit($nikname)) $error .= 'Ник не должен состоять из одних цифр!';
elseif (isset($password) && is_numeric($password)) $error .= 'Слишком простой пароль, используйте буквы и цифры!';
elseif (isset($password) && !preg_match("!^[a-z0-9]+$!i", $password)) $error .= 'В пароле обнаружены запрещенные знаки!';
elseif (isset($password) && mb_strlen($password, 'UTF8') < 6) $error .= 'Пароль не должен быть короче 6ти символов!';
elseif (isset($password) && mb_strlen($password, 'UTF8') > 20) $error .= 'Пароль не должен быть длиннее 15ти символов!';
if (!empty($error)) {
echo $div_title . 'Ошибка!' . $div_end;
err($error);
} else {
if (user_inf($nick, 'level') != $level && $nick != $user['id']) {
if ($level == 0) $whylev = '[Пользователь]';
if ($level == 1) $whylev = '[Стажер]';
if ($level == 2) $whylev = '[Модератор]';
if ($level == 3) $whylev = '[Ст.Модератор]';
if ($level == 4) $whylev = '[Администратор]';
if ($level == 5) $whylev = '[Ст.Администратор]';
$mess = us($user['id']) . ' присвоил Вам уровень ' . $whylev . ' !';
mysql_query("INSERT INTO `letters` (`id`,`who`,`idwho`,`message`,`data`,`read`,`mod`)
VALUES (0,'0','$nick','$mess','" . time() . "','0','i')");
}
mysql_query("UPDATE `users` SET
`user` = '$nikname',
`latuser` = '$latuser'
$queryLevel
$queryPass
WHERE `id` = '$nick' LIMIT 1");
header('Location: admin.php?do=update&nick='.$nick.'&ok');
}
break;
// действия юзера
case us_adult:
$nick = my_int($_POST['nick']);
$adult = my_int($_POST['adult']);
if (!user_inf($nick)) {
err('Пользователь не найден!');
include 'system/foot.php';
exit();
}
if ($nick == 1 && $nick != $user['id'] || $user['level'] < user_inf($nick, 'level') && $nick != $user['id']) {
err('У Вас нет прав для этого действия!');
include 'system/foot.php';
exit();
}
if ($adult == 1) header('Location: admin.php?do=bann&nk=' . $nick);
if ($adult == 2) header('Location: admin.php?do=bann_ip&nk=' . $nick);
if ($adult == 3) header('Location: admin.php?do=delus&nk=' . $nick);
if ($adult == 4) header('Location: admin.php?do=clonus&nk=' . $nick);
if ($adult == 5) header('Location: admin.php?do=clonus2&nk=' . $nick);
if ($adult == 6) header('Location: admin.php?do=update&nick=' . $nick);
die();
break;
// бан ника
case bann:
echo $div_title . 'Банн' . $div_end;
$nk = my_int($_REQUEST['nk']);
if ($nk == 1 && $nk != $user['id'] || $user['level'] < user_inf($nk, 'level') && $nk != $user['id']) {
err('У Вас нет прав для этого действия!');
include 'system/foot.php';
exit();
}
if (!user_inf($nk)) {
err('Пользователь не найден!');
include 'system/foot.php';
exit();
}
if (!isset($_POST['ok'])) {
echo '<FORM action="admin.php?do=bann" method="POST">
<label>Ник|ID:</label>
<br/>
<input type="text" name="nick" value="'.user_inf($nk, 'user').'" title="Ник|ID"/>
<br/>
<label>Время:</label>
<br/>
<input type="text" name="na" title="Время"/>
<br/>
<select name="vremja">
<option value="min">Минут</option>
<option value="chas">Часов</option>
<option value="sut">Суток</option>
<option value="mes">Месяцев</option>
</select>
<br/>
<label>Причина:</label>
<br/>
<input type="text" name="whykik" title="Причина"/>
<br/>
<input type="hidden" name="nk" value="' . $nk . '"/>
<input type="submit" name="ok" value="Блокировать"/>
</FORM>';
} else {
if (empty($_POST['na'])) {
err('Не указано время блокировки!');
} elseif (empty($_POST['whykik'])) {
err('Не указана причина блокировки!');
}
else
{
if ($_POST['vremja'] == 'min') $na = (int)$_POST['na'] * 60;
if ($_POST['vremja'] == 'chas') $na = (int)$_POST['na'] * 60 * 60;
if ($_POST['vremja'] == 'sut') $na = (int)$_POST['na'] * 60 * 60 * 24;
if ($_POST['vremja'] == 'mes') $na = (int)$_POST['na'] * 60 * 60 * 24 * 30;
$whykik = trim(mysql_real_escape_string(check($_POST['whykik'])));
$na = time() + $na;
// запись в логи
mysql_query("INSERT INTO `adm_logs` SET
`type` = 'bann_nick',
`user` = '$nk',
`who` = '$user[id]',
`date` = '" . time() . "'");
mysql_query("UPDATE `users` SET
`kik` = '$na',
`whokik` = '$user[id]',
`whykik` = '$whykik'
WHERE `id` = '$nk' LIMIT 1");
msg('Пользователь заблокирован на ' . kikt($na) . ' за ' . $whykik);
}
}
break;
// бан айпи
case bann_ip:
echo $div_title . 'Банн' . $div_end;
$nk = my_int($_GET['nk']);
if ($nk == 1 && $nk != $user['id'] || $user['level'] < user_inf($nk, 'level') && $nk != $user['id']) {
err('У Вас нет прав для этого действия!');
include 'system/foot.php';
exit();
}
if (!user_inf($nk)) {
err('Пользователь не найден!');
include 'system/foot.php';
exit();
}
// запись в логи
mysql_query("INSERT INTO `adm_logs` SET
`type` = 'bann_ip',
`user` = '$nk',
`who` = '$user[id]',
`date` = '" . time() . "'");
mysql_query("INSERT INTO `bannlist` SET
`id` = '" . mt_rand(1000000, 9999999) . "',
`ip` = '" . long2ip(user_inf($nk, 'user_ip')) . "',
`who` = '" . user_inf($nk, 'id') . "'");
msg('IP пользователя заблокировано!');
break;
// удаление ника
case delus:
echo $div_title . 'Удалить ник' . $div_end;
$nk = my_int($_GET['nk']);
if ($nk == 1 && $nk != $user['id'] || $user['level'] < user_inf($nk, 'level') && $nk != $user['id']) {
err('У Вас нет прав для этого действия!');
include 'system/foot.php';
exit();
}
if (!user_inf($nk)) {
err('Пользователь не найден!');
include 'system/foot.php';
exit();
}
// запись в логи
mysql_query("INSERT INTO `adm_logs` SET
`type` = 'delete',
`user` = '" . user_inf($nk, 'user') . "',
`who` = '$user[id]',
`date` = '" . time() . "'");
$albums = mysql_query("SELECT * FROM `albums` WHERE `user` = '$nk' LIMIT 1");
// удаление его постов в чате
mysql_query("DELETE FROM `message` WHERE `who` = '$nk'");
// удаление его с баннлиста
mysql_query("DELETE FROM `bannlist` WHERE `who` = '$nk'");
// удаление его постов на форуме
mysql_query("DELETE FROM `f_message` WHERE `user` = '$nk'");
// удаление его писем
mysql_query("DELETE FROM `letters` WHERE `who` = '$nk' OR `idwho` = '$nk'");
// удаление его с друзей
mysql_query("DELETE FROM `friends` WHERE `user` = '$nk' OR `who` = '$nk'");
// удаление его с игнора
mysql_query("DELETE FROM `ignor` WHERE `user_id` = '$nk' OR `ig_id` = '$nk'");
// удаление его сообщений со стены
mysql_query("DELETE FROM `wall` WHERE `user` = '$nk' OR `komu` = '$nk'");
// удаление его записей с заметок
mysql_query("DELETE FROM `zametki` WHERE `user` = '$nk'");
// удаление его комментов к новостям
mysql_query("DELETE FROM `newscomm` WHERE `user` = '$nk'");
// удаление его записей в поддержке
mysql_query("DELETE FROM `support` WHERE `user` = '$nk'");
// удаление его комментов в поддержке
mysql_query("DELETE FROM `support_coms` WHERE `user` = '$nk'");
// удаление ника
mysql_query("DELETE FROM `users` WHERE `id` = '$nk' LIMIT 1");
// удаление альбомов
if (mysql_num_rows($albums) != FALSE) {
while($a = mysql_fetch_assoc($albums)) {
// удаление фоток
if (file_exists($a['path'])) unlink($a['path']);
// удаление альбомов
mysql_query("DELETE FROM `albums` WHERE `user` = '$nk'");
}
}
msg('Пользователь удален!');
break;
// просмотр клонов по ip
case clonus:
echo $div_title . 'Клоны' . $div_end;
$nk = my_int($_GET['nk']);
if ($nk == 1 && $nk != $user['id'] || $user['level'] < user_inf($nk, 'level') && $nk != $user['id']) {
err('У Вас нет прав для этого действия!');
include 'system/foot.php';
exit();
}
if (!user_inf($nk)) {
err('Пользователь не найден!');
include 'system/foot.php';
exit();
}
$num = mysql_result(mysql_query("SELECT COUNT(id) FROM `users` WHERE `user_ip` = '" . user_inf($nk, 'user_ip') . "' AND `id` != '$nk'"), 0);
if ($num != FALSE) {
$n = new navigator($num, 10, '?do=clonus&nk='.$nk.'&');
$look = mysql_query("SELECT `id`, `user_ip` FROM `users` WHERE `user_ip` = '" . user_inf($nk, 'user_ip') . "' AND `id` != '$nk' ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($q = mysql_fetch_assoc($look)) {
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo us($q['id']) . ' (' . long2ip($q['user_ip']) . ')' . $div_end;
}
echo $n->navi();
} else {
echo 'Пользователей с идентичными IP не найдено!<br/>';
}
break;
// просмотр клонов по ip (подсеть)
case clonus2:
echo $div_title . 'Клоны' . $div_end;
$nk = my_int($_GET['nk']);
if ($nk == 1 && $nk != $user['id'] || $user['level'] < user_inf($nk, 'level') && $nk != $user['id']) {
err('У Вас нет прав для этого действия!');
include 'system/foot.php';
exit();
}
if (!user_inf($nk)) {
err('Пользователь не найден!');
include 'system/foot.php';
exit();
}
$num = mysql_result(mysql_query("SELECT COUNT(id) FROM `users` WHERE (locate(lower('".user_inf($nk, 'user_ip')."'), lower(`user_ip`))>0) AND `id` != '$nk'"), 0);
if ($num != FALSE) {
$n = new navigator($num, 10, '?do=clonus&nk='.$nk.'&');
$look = mysql_query("SELECT `id`, `user_ip` FROM `users` WHERE (locate(lower('".user_inf($nk, 'user_ip')."'), lower(`user_ip`))>0) AND `id` != '$nk' ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($q = mysql_fetch_assoc($look)) {
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo us($q['id']) . ' (' . long2ip($q['user_ip']) . ')' . $div_end;
}
echo $n->navi();
} else {
echo 'Пользователей с похожими IP не найдено!<br/>';
}
break;
// одобрение рег-й
case onreg:
echo $div_title . 'Одобрить рег-и' . $div_end;
if (isset($_GET['ok'])) {
mysql_query("UPDATE `users` SET `mod_reg` = '0' WHERE `id` = '" . my_int($_GET['ok']) . "' LIMIT 1");
header('Location: admin.php?do=onreg');
}
if (isset($_GET['del'])) {
mysql_query("DELETE FROM `users` WHERE `id` = '" . my_int($_GET['del']) . "' LIMIT 1");
header('Location: admin.php?do=onreg');
}
$look = mysql_query("SELECT id, user_ip FROM `users` WHERE `mod_reg` = '1'");
$i = 0;
if (mysql_num_rows($look) != FALSE) {
while($a = mysql_fetch_assoc($look)) {
$sql_1 = '<span class = "next"><a href="admin.php?do=onreg&ok='.$a['id'].'"><img src="ico/ok.gif" alt=""/></a></span> ';
$sql_2 = '<span class = "next"><a href="admin.php?do=onreg&del='.$a['id'].'"><img src="ico/delete.gif" alt=""/></a></span> ';
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo us($a['id']) . ' (' . long2ip($a['user_ip']) . ') ' . $sql_1 . $sql_2 . $div_end;
}
} else {
echo 'Пользователей на модерации нет!<br/>';
}
break;
// управление системой
case sys:
if ($user['level'] == 4) {
header('Location: admin.php?');
die();
}
echo $div_title . 'Управление системой' . $div_end;
if (isset($_GET['ok'])) msg('Настройки сохранены!');
include 'mod_reg.dat';
if (isset($_POST['ok'])) {
$reg = my_int($_POST['reg']);
$an = my_int($_POST['an']);
$f = fopen('mod_reg.dat', 'w');
fwrite($f, '<?$mod_reg = '.$reg.';?>');
fclose($f);
chmod('mod_reg.dat', 0666);
$an = ($an == 1) ? 1 : 0;
mysql_query("UPDATE `setting` SET `antimat` = '$an' WHERE `ids` = '1'");
header('Location: admin.php?do=sys&ok');
}
$sett = mysql_fetch_assoc(mysql_query("SELECT * FROM `setting` WHERE `ids` = '1'"));
echo '<FORM method="POST" action="admin.php?do=sys">
<label>Регистрация</label>:<br/>
<input type="radio" name="reg" ' . ($mod_reg == 0 ? 'checked' : '') . ' value="0"/> Выключена<br/>
<input type="radio" name="reg" ' . ($mod_reg == 2 ? 'checked' : '') . ' value="2"/> Включена<br/>
<input type="radio" name="reg" ' . ($mod_reg == 1 ? 'checked' : '') . ' value="1"/> На модерации<br/>
' . $block . '
<label>Антимат</label>:<br/>
<input type="radio" name="an" ' . ($sett['antimat'] == 1 ? 'checked' : '') . ' value="1"/> Вкл
<input type="radio" name="an" ' . ($sett['antimat'] == 0 ? 'checked' : '') . ' value="2"/> Выкл
<br/>
<input type="submit" name="ok" value="Сохранить"/>
</FORM>' . $div_end;
break;
// антиреклама
case antirekl:
if ($user['level'] == 4) {
header('Location: admin.php?');
die();
}
echo $div_title . 'Управление антирекламой' . $div_end;
$ex = explode(',', file_get_contents('domains.dat'));
if (isset($_GET['ok'])) msg('Сохранено!');
$_ant = mysql_fetch_assoc(mysql_query("SELECT `on_rekl`, `text_rekl` FROM `setting` WHERE `ids` = '1'"));
if ($_ant['on_rekl'] == 1 && filesize($_SERVER['DOCUMENT_ROOT'] . '/domains.dat') > 0) {
$ch_1 = 'checked="checked"';
} else {
$ch_2 = 'checked="checked"';
}
$num = (filesize('domains.dat') != 0) ? count($ex) : 0;
echo $div_razdel. 'Допустимое кол-во доменов 40, имя домена не должно превышать 9 символов, домены пишутся через запятую!
' . $div_end . '
Добавлено доменов: ' . $num . '<br/>
<FORM method="POST" action="admin.php?do=antirekl">
<textarea name="domains" cols="50" rows="5" style="width: 99%;">' . file_get_contents('domains.dat') . '</textarea>
<br/>
<input type="submit" name="ok_1" value="Сохранить"/>
</FORM>
' . $block . '
<FORM method="POST" action="admin.php?do=antirekl">
<label>Антиреклама:</label><br/>
<input type="radio" name="an" ' . $ch_1 . ' value="1"/> Вкл
<input type="radio" name="an" ' . $ch_2 . ' value="2"/> Выкл
<br/>
<input type="submit" name="ok_2" value="Сохранить"/>
</FORM>
' . $block . '
<FORM method="POST" action="admin.php?do=antirekl">
<label>Текст антирекламы:</label><br/>
<input type="text" name="lock" value="' . $_ant['text_rekl'] . '"/>
<br/>
<input type="submit" name="ok_3" value="Сохранить"/>
</FORM>';
########
if (isset($_POST['ok_1'])) {
$ex = explode(',', $_POST['domains']);
if (count($ex) >= 40) {
err('Ошибка! Достигнут лимит доменов!');
exit();
}
if (file_exists('domains.dat')) file_put_contents('domains.dat', htmlspecialchars($_POST['domains']));
header('Location: admin.php?do=antirekl&ok');
}
########
if (isset($_POST['ok_2'])) {
$an = my_int($_POST['an']);
$an = ($an == 1) ? 1 : 0;
mysql_query("UPDATE `setting` SET `on_rekl` = '$an' WHERE `ids` = '1'");
header('Location: admin.php?do=antirekl&ok');
}
########
if (isset($_POST['ok_3'])) {
$lock = trim(mysql_real_escape_string(check($_POST['lock'])));
mysql_query("UPDATE `setting` SET `text_rekl` = '$lock' WHERE `ids` = '1'");
header('Location: admin.php?do=antirekl&ok');
}
########
break;
// записки
case letters:
echo $div_title . 'Управление записками' . $div_end;
if (isset($_GET['yes_all'])) {
mysql_query("DELETE FROM `letters` WHERE `save` = '0'");
######################################
$dir = 'mail';
$opdir = opendir($dir);
while($a = readdir($opdir))
{
if ($a == '.' or $a == '..' or $a == 'index.php' or $a == '.htaccess') continue;
if (is_file($dir . '/' . $a))
{
unlink($dir . '/' . $a);
}
}
######################################
msg('Все записки вне архива очищены!');
header('Refresh:1;url=admin.php?do=letters');
}
if (isset($_GET['yes_ar'])) {
mysql_query("DELETE FROM `letters` WHERE `save` = '1'");
######################################
$dir = 'mail';
$opdir = opendir($dir);
while($a = readdir($opdir))
{
if ($a == '.' or $a == '..' or $a == 'index.php' or $a == '.htaccess') continue;
if (is_file($dir . '/' . $a))
{
unlink($dir . '/' . $a);
}
}
######################################
msg('Все архивы записок очищены!');
header('Refresh:1;url=admin.php?do=letters');
}
echo '» <a href="admin.php?do=read_letter">Читать записки</a><br/>
» <a href="admin.php?do=clean_letter">Очистить все записки</a><br/>
» <a href="admin.php?do=clean_letter_ar">Очистить записки из архива</a><br/>
» <a href="admin.php?do=add_letter">Рассылка записок</a><br/>';
break;
// чтение записок
case read_letter:
echo $div_title . 'Чтение записок' . $div_end;
// удаление одного сообщения
if (isset($_GET['x'])) {
$x = my_int($_GET['x']);
$pr = mysql_query("SELECT `id` FROM `letters` WHERE `id` = '$x' LIMIT 1");
if (mysql_num_rows($pr) != FALSE) {
mysql_query("DELETE FROM `letters` WHERE `id` = '$x' LIMIT 1");
header('Location: admin.php?do=read_letter');
} else {
header('Location: admin.php?do=read_letter');
}
}
// очистка всех сообщений от одного юзера
if (isset($_GET['cl'])) {
$cl = my_int($_GET['cl']);
$pr = mysql_query("SELECT `id` FROM `letters` WHERE `who` = '$cl' LIMIT 1");
if (mysql_num_rows($pr) != FALSE) {
mysql_query("DELETE FROM `letters` WHERE `who` = '$cl'");
header('Location: admin.php?do=read_letter');
} else {
header('Location: admin.php?do=read_letter');
}
}
/*
* Чтение писем от выбраного пользователя
*/
if (isset($_GET['read'])) {
$read = my_int($_GET['read']);
if ($user['id'] != 1) $_no_id1 = "AND `who` != '1' AND `idwho` != '1'";
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `letters` WHERE `mod` = 'i' AND `who` = '$read' $_no_id1"), 0);
$n = new navigator($count, 10, '?do=read_letter&read='.$read.'&');
if ($count != FALSE) {
$list = mysql_query("SELECT * FROM `letters` WHERE `mod` = 'i' AND `who` = '$read' $_no_id1 ORDER BY `data` DESC {$n->limit}");
$i = 0;
while($q = mysql_fetch_assoc($list)) {
$arch = ($q['save'] == 1)
?
' <span style="color: #00AA00">(В Архиве)</span>'
: ' <span style="color: #FF0000"><del>(В Архиве)</del></span>';
$del = '<a href="admin.php?do=read_letter&x='.$q['id'].'"><img src="ico/delete.gif" alt=""/></a> ';
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo $del . '
Кто: ' . user_inf($q['who'], 'user') . $arch . '
<br/>
Кому: ' . user_inf($q['idwho'], 'user') . '
<br/>
Сообщение: ' . $q['message'] . '
<br/>
' . ($q['file'] != '' ? '» <a href="'.$q['file'].'">Файл <b>' . end(explode('.', $q['file'])) . '</b></a><br/>' : '') . '
Дата: ' . date('d.m.Y H:i', $q['data']) . '
<br/>
<a href="admin.php?do=read_letter">[читать все записки]</a><br/>
<a href="admin.php?do=read_letter&cl='.$q['who'].'">[очистить все от ' . user_inf($q['who'], 'user') . ']</a>' . $div_end;
}
echo $n->navi();
} else {
echo 'Записок этого пользователя в базе нет.<br/>';
}
//////////////////////////////////////////////
} else {
//////////////////////////////////////////////
if ($user['id'] != 1) $_no_id1 = "AND `who` != '1' AND `idwho` != '1'";
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `letters` WHERE `mod` = 'i' AND `who` != '0' $_no_id1"), 0);
$n = new navigator($count, 10, '?do=read_letter&');
if ($count != FALSE) {
$list = mysql_query("SELECT * FROM `letters` WHERE `mod` = 'i' AND `who` != '0' $_no_id1 ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($q = mysql_fetch_assoc($list)) {
$arch = ($q['save'] == 1)
?
' <span style="color: #00AA00">(В Архиве)</span>'
: ' <span style="color: #FF0000"><del>(В Архиве)</del></span>';
$del = '<a href="admin.php?do=read_letter&x='.$q['id'].'"><img src="ico/delete.gif" alt=""/></a> ';
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo $del . '
Кто: ' . user_inf($q['who'], 'user') . $arch . '
<br/>
Кому: ' . user_inf($q['idwho'], 'user') . '
<br/>
Сообщение: ' . $q['message'] . '
<br/>
' . ($q['file'] != '' ? '» <a href="'.$q['file'].'">Файл <b>' . end(explode('.', $q['file'])) . '</b></a><br/>' : '') . '
Дата: ' . date('d.m.Y H:i', $q['data']) . '
<br/>
<a href="admin.php?do=read_letter&read='.$q['who'].'">[читать все от ' . user_inf($q['who'], 'user') . ']</a><br/> <a href="admin.php?do=read_letter&cl='.$q['who'].'">[очистить все от ' . user_inf($q['who'], 'user') . ']</a>' . $div_end;
}
echo $n->navi();
} else {
echo 'Записок в базе нет.<br/>';
}
//////////////////////////////////////////////
}
//////////////////////////////////////////////
break;
// очистка записок
case clean_letter:
echo $div_title . 'Очистка записок' . $div_end;
echo 'Вы действительно хотите очистить все записки с базы?
<br/>
<span class="next"><img src="ico/ok.gif" alt=""/> <a href="admin.php?do=letters&yes_all">Да</a></span>
<span class="next"><img src="ico/delete.gif" alt=""/> <a href="admin.php?">Нет</a></span>
<br/>' . $block;
break;
// очистка записок с архива
case clean_letter_ar:
echo $div_title . 'Очистка записок' . $div_end;
echo 'Вы действительно хотите очистить архивы записок с базы?
<br/>
<span class="next"><img src="ico/ok.gif" alt=""/> <a href="admin.php?do=letters&yes_ar">Да</a></span>
<span class="next"><img src="ico/delete.gif" alt=""/> <a href="admin.php?">Нет</a></span>
<br/>' . $block;
break;
// рассылка записок
case add_letter:
echo $div_title . 'Рассылка записок' . $div_end;
if (isset($_POST['go'])) {
$about = trim(mysql_real_escape_string(check($_POST['about'])));
if (empty($about)) {
err('Не заполнено поле сообщения!');
} else {
$all_us = mysql_query("SELECT `id` FROM `users` WHERE `id` != '$user[id]'");
while($q = mysql_fetch_assoc($all_us)) {
$mes = $about . ' (Это письмо сформировано автоматически Администратором.)';
mysql_query("INSERT INTO `letters` (`id`,`who`,`idwho`,`message`,`data`,`read`,`mod`)
VALUES (0,'0','$q[id]','$mes','" . time() . "','0','i')");
}
msg('Рассылка успешно выполнена!');
header('refresh:1;url=admin.php?do=letters');
}
}
echo '<FORM method="POST" action="admin.php?do=add_letter">
<label>Сообщение:</label><br/>
<textarea name="about" cols="50" rows="5" style="width: 99%;"></textarea>
<input type="submit" name="go" value="Отправить"/>
</FORM>';
break;
// смайлы
case smiles:
echo $div_title . 'Управление смайлами' . $div_end . $div_razdel;
echo '» <a href="admin.php?do=cat_smiles">Категории смайлов</a><br/>
» <a href="admin.php?do=add_smiles">Загрузить новые</a><br/>' . $div_end;
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `cat_smiles`"), 0);
if ($count != false) {
$n = new navigator($count, 10, '?do=smiles&');
$result = mysql_query("SELECT `cat_smiles`.*,(SELECT COUNT(id) FROM `smiles` WHERE `smiles`.`cat`=`cat_smiles`.`id`) AS c FROM `cat_smiles` ORDER BY `cat_smiles`.`id` DESC {$n->limit}");
$i = 0;
while($sql = mysql_fetch_assoc($result)) {
echo ($i ++ % 2) ? $div_razdel : $div_tworazdel;
echo '<a href="admin.php?do=look_smiles&c='.$sql['id'].'"><b>' . $sql['name'] . '</b></a> (' . $sql['c'] . ')' . $div_end;
}
echo $n->navi();
} else {
echo 'Категории смайлов еще не созданы!<br/>';
}
break;
// категории смайлов
case cat_smiles:
echo $div_title . 'Создать категорию' . $div_end;
if (isset($_GET['drop'])) {
$c = my_int($_GET['c']);
$empty = mysql_query("SELECT * FROM `cat_smiles` WHERE `id` = '$c'");
if (mysql_num_rows($empty) == FALSE) {
err('Категории не существует!');
include 'system/foot.php';
exit();
}
while($inf = mysql_fetch_assoc($empty)) {
$_nums = mysql_query("SELECT * FROM `smiles` WHERE `cat` = '$inf[id]' LIMIT 1");
$_sql_1 = mysql_num_rows($_nums);
mysql_query("DELETE FROM `smiles` WHERE `cat` = '$inf[id]'");
mysql_query("DELETE FROM `cat_smiles` WHERE `id` = '$inf[id]'");
while($_sql_2 = mysql_fetch_assoc($_nums)) {
if (file_exists($_sql_2['path'])) unlink($_sql_2['path']);
}
msg('Категория <b>' . $inf['name'] . '</b> и <b>' . $_sql_1 . '</b> смайлов в ней удалены!');
}
}
if (isset($_POST['create'])) {
$name = trim(mysql_real_escape_string(check($_POST['name'])));
if (empty($name)) {
err('Не заполнено имя категории!');
} else {
mysql_query("INSERT INTO `cat_smiles` SET `name` = '$name'");
header('Location: admin.php?do=smiles');
}
}
echo '<FORM method="POST" action="admin.php?do=cat_smiles">
<label>Новая категория:</label><br/>
<input type="text" name="name"/>
<br/>
<input type="submit" name="create" value="Создать"/>
</FORM>' . $block;
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `cat_smiles`"), 0);
if ($count != false) {
$n = new navigator($count, 10, '?do=cat_smiles&');
$result = mysql_query("SELECT * FROM `cat_smiles` ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($sql = mysql_fetch_assoc($result)) {
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo '<a href="admin.php?do=cat_smiles&drop&c='.$sql['id'].'"><img src="ico/delete.gif" alt=""/></a> <b>' . $sql['name'] . '</b>' . $div_end;
}
echo $n->navi();
} else {
echo 'Категории смайлов еще не созданы!<br/>';
}
break;
// добавление смайлов
case add_smiles:
$look = mysql_query("SELECT * FROM `cat_smiles`");
if ($_GET['err'] == 1) err('Не выбран файл!');
if ($_GET['err'] == 2) err('Неправильное расширение файла!');
if ($_GET['err'] == 3) err('Запрещенный формат файла!');
if ($_GET['err'] == 4) err('Превышен размер файла!');
if ($_GET['err'] == 5) err('Не заполнено название!');
if ($_GET['err'] == 6) err('Не выбрана категория!');
if ($_GET['err'] == 7) err('В названии смайла запрещенные символы!');
if ($_GET['err'] == 8) err('Смайл с таким именем уже существует!');
if ($_GET['err'] == 9) err('Смайл с такой картинкой уже существует!');
if (isset($_GET['good'])) msg('Смайл успешно загружен!');
if (isset($_POST['add'])) {
$nazv = trim(mysql_real_escape_string(check($_POST['nazv'])));
$kat = my_int($_POST['kat']);
$fnames = $_FILES['file']['name'];
$_emp = mysql_num_rows(mysql_query("SELECT `id` FROM `smiles` WHERE `name` = '$nazv' LIMIT 1"));
if ($_emp >= 1) {
header('Location: admin.php?do=add_smiles&err=8');
die();
}
$_log = mysql_num_rows(mysql_query("SELECT `id` FROM `smiles` WHERE `path` = 'smiles/$fnames' LIMIT 1"));
if ($_log > 1) {
header('Location: admin.php?do=add_smiles&err=9');
die();
}
if (empty($nazv)) {
header('location: admin.php?do=add_smiles&err=5');
die();
}
if (empty($kat)) {
header('location: admin.php?do=add_smiles&err=6');
die();
}
if (!preg_match('#^[a-zа-яё0-9:)\/;*-([]%@=]+$#ui', $nazv)) {
header('location: admin.php?do=add_smiles&err=7');
die();
}
if (empty($_FILES['file']['name'])) {
header('location: admin.php?do=add_smiles&err=1');
die();
}
$pictures = array('.gif', '.jpg', '.jpeg', '.png');
$ext = strtolower(strrchr($_FILES['file']['name'], '.'));
$par = getimagesize($_FILES['file']);
if (($par[0] > 150) or ($par[1] > 150)) {
header('Location: admin.php?do=add_smiles&err=2');
die();
}
if (preg_match('/(.php|.pl|.htaccess)/i', $fnames)) {
header('Location: admin.php?do=add_smiles&err=3');
die();
}
if (!in_array($ext, $pictures)) {
header('Location: admin.php?do=add_smiles&err=3');
die();
}
if ($_FILES['file']['size'] > (1024 * 100)) {
header('Location: admin.php?do=add_smiles&err=4');
die();
}
if (empty($err)) {
$foto = 'smiles/' . time() . $ext;
$nazv = mb_strtolower($nazv, 'UTF8');
copy($_FILES['file']['tmp_name'], $foto);
mysql_query("INSERT INTO `smiles` SET `path` = '$foto', `cat` = '$kat', `name` = '$nazv'");
header('Location: admin.php?do=add_smiles&good');
}
}
echo $div_title . 'Загрузка смайлов' . $div_end . '
<FORM ENCTYPE="multipart/form-data" action="admin.php?do=add_smiles" method="POST">
<label>Смайл:(max 150x150px 50kb)</label><br/>
<INPUT NAME="file" TYPE="file" accept="image/*">
<br/>
<label>Название <small>Пример: *смайл* %) :]</small></label><br/>
<input type="text" name="nazv"/>
<br/>
<label>Выбрать категорию:</label><br/>
<select name="kat">';
while($a = mysql_fetch_assoc($look)) {
echo '<option value="'.$a['id'].'">' . $a['name'] . '</option>';
}
echo '</select><br/>
<input type="submit" name="add" value="Загрузить"/>
</FORM>';
break;
// просмотр смайлов
case look_smiles;
echo $div_title . 'Смайлы' . $div_end;
$c = my_int($_GET['c']);
$empty = mysql_query("SELECT * FROM `cat_smiles` WHERE `id` = '$c'");
if (isset($_GET['x'])) {
$x = my_int($_GET['x']);
$sempty = mysql_query("SELECT * FROM `smiles` WHERE `id` = '$x' LIMIT 1");
if (mysql_num_rows($sempty) != FALSE) {
$sinf = mysql_fetch_assoc($sempty);
if (file_exists($sinf['path'])) unlink($sinf['path']);
mysql_query("DELETE FROM `smiles` WHERE `id` = '$x'");
header('Location: admin.php?do=look_smiles&c=' . $c);
} else {
err('Такого смайла нету!');
}
}
if (mysql_num_rows($empty) != FALSE) {
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `smiles` WHERE `cat` = '$c'"), 0);
if ($count != false) {
$n = new navigator($count, 15, '?do=look_smiles&c='.$c.'&');
$result = mysql_query("SELECT * FROM `smiles` WHERE `cat` = '$c' ORDER BY `id` DESC {$n->limit}");
$next = 0;
while($sql = mysql_fetch_assoc($result)) {
$del_s = ' <a href="admin.php?do=look_smiles&x='.$sql['id'].'&c='.$c.'"><img src="ico/delete.gif" alt=""/></a> ';
$ed_s = '<a href="admin.php?do=look_smiles&do=edsmile&e='.$sql['id'].'&c='.$c.'"><img src="ico/edit.gif" alt=""/></a>';
echo ($next ++ % 2) ? $div_tworazdel : $div_razdel;
echo $ed_s . $del_s . '<img src="' . $sql['path'] . '" alt=""/> ' . $sql['name'] . $div_end;
}
echo $n->navi();
} else {
echo 'В этой категории нет смайлов!<br/>';
}
} else {
err('Категории не существует!');
}
break;
// изменение смайла
case edsmile:
$c = my_int($_REQUEST['c']);
$e = my_int($_REQUEST['e']);
echo $div_title . 'Изменить' . $div_end;
if (isset($_POST['save'])) {
$nm = trim(mysql_real_escape_string(check($_POST['nm'])));
if (empty($nm)) {
err('Не заполнено имя смайла!');
} elseif (!preg_match('#^[a-zа-яё0-9:)\/;*-([]%@=]+$#ui', $nm)) {
err('В названии смайла запрещенные символы!');
} else {
mysql_query("UPDATE `smiles` SET `name` = '$nm' WHERE `id` = '$e' LIMIT 1");
header('Location: admin.php?do=look_smiles&c=' . $c);
}
}
$sempty = mysql_query("SELECT name FROM `smiles` WHERE `id` = '$e' LIMIT 1");
if (mysql_num_rows($sempty) != FALSE) {
$sinf = mysql_fetch_assoc($sempty);
echo '<FORM method="POST" action="admin.php?do=edsmile">
<input type="text" name="nm" value="' . $sinf['name'] . '"/>
<br/>
<input type="hidden" name="c" value="' . $c . '"/>
<input type="hidden" name="e" value="' . $e . '"/>
<input type="submit" name="save" value="Сохранить"/>
</FORM>';
} else {
err('Такого смайла нету!');
}
break;
// диалог бота
case dialog:
if ($user['level'] == 4) {
header('Location: admin.php?');
die();
}
echo $div_title . 'Диалог бота' . $div_end;
if (isset($_POST['new_list'])) {
$message = trim(mysql_real_escape_string(check($_POST['message'])));
$type = my_int($_POST['type']);
if (empty($message)) {
err('Ошибка!');
} else {
if ($type == 1) $tip = 'hello';
if ($type == 2) $tip = 'quest';
if ($type == 3) $tip = 'mat';
if ($type == 4) $tip = 'robot';
if ($type == 5) $tip = 'love';
if ($type == 6) $tip = 'talk';
if ($type == 7) $tip = 'name';
if ($type == 8) $tip = 'sps';
if ($type == 9) $tip = 'fuck';
if ($type == 10) $tip = 'other';
mysql_query("INSERT INTO `dialog` SET `message` = '$message', `type` = '$tip'");
msg('Добавлено!');
}
}
echo '<form method="POST" action="admin.php?do=dialog">
<label>Ответ на пост:</label><br/>
<textarea name="message" cols="25" rows="3" style="width: 99%;"></textarea>
<br/>
<label>Тип вопроса:</label><br/>
<select name="type">
<option value="1">ответы на приветствия</option>
<option value="2">ответы на вопросы</option>
<option value="3">ответы на обзывания</option>
<option value="4">ответы на то,что бот</option>
<option value="5">ответы на любовь</option>
<option value="6">предложение поговорить</option>
<option value="7">ответы на "как зовут"</option>
<option value="8">ответы на "спасибо"</option>
<option value="9">если пишут что попало</option>
<option value="10">периодические сообщения</option>
</select>
<br/>- - -<br/>
<input type="submit" name="new_list" value="Добавить"/>
</form>';
if (!isset($_GET['look'])) {
echo '<a href="admin.php?do=dialog&look"><b>Посмотреть базу ответов</b></a>' . $block;
} else {
echo '<a href="admin.php?do=dialog"><b>Скрыть базу ответов</b></a>' . $block;
}
if (isset($_GET['look']))
{
if (isset($_GET['delete'])) {
msg('Ответ удален!');
mysql_query("DELETE FROM `dialog` WHERE `id` = '" . my_int($_GET['x']) . "' LIMIT 1");
}
$view = mysql_query("SELECT * FROM `dialog` ORDER BY `type` DESC");
while($a = mysql_fetch_assoc($view)) {
echo '<u>' . $a['type'] . ':</u>
<a href="admin.php?do=dialog&look&delete&x='.$a['id'].'">' . $a['message'] . '</a><br/>';
}
}
break;
// Управление чатом
case chat:
if (isset($_POST['set'])) {
$open_chat = my_int($_POST['open_chat']);
mysql_query("UPDATE `setting` SET `open_chat` = '$open_chat' WHERE `ids` = '1'");
echo ($open_chat == 1)
?
msg('Чат включен!')
:
msg('Чат выключен!');
}
$pr_open = mysql_fetch_array(mysql_query("SELECT `open_chat` FROM `setting` WHERE `ids` = '1'"));
if ($pr_open[0] == 1) $pr_set_1 = 'checked="checked"';
elseif ($pr_open[0] == 2) $pr_set_2 = 'checked="checked"';
echo $div_title . 'Управление чатом' . $div_end . '
<FORM method="POST" action="admin.php?do=chat">
<label>Чат:</label><br/>
<input type="radio" name="open_chat" ' . $pr_set_1 . ' value="1"/> Вкл
<br/>
<input type="radio" name="open_chat" ' . $pr_set_2 . ' value="2"/> Выкл
<br/>
<input type="submit" name="set" value="Принять"/>
</FORM>';
break;
// реклама
case reklama:
if ($user['level'] == 4) {
header('Location: admin.php?');
die();
}
if (isset($_POST['addlink'])) {
$name = trim(mysql_real_escape_string(check($_POST['name'])));
$link = trim(mysql_real_escape_string(check($_POST['link'])));
if (empty($name) && !empty($link) || !empty($name) && empty($link)) {
$err .= 'Не корректно заполнены данные!';
} elseif (empty($name) || empty($link)) {
$err .= 'Не корректно заполнены данные!';
}
if (empty($err)) {
mysql_query("INSERT INTO `reklama` SET
`name` = '$name',
`link` = '$link'");
msg('Линки сохранены!');
} else {
err($err);
}
}
$rek = mysql_result(mysql_query("SELECT COUNT(id) FROM `reklama`"), 0);
echo $div_title . 'Реклама' . $div_end . '
<FORM method="POST" action="admin.php?do=reklama">
<label>Название:</label><br/>
<input type="text" name="name" value=""/><br/>
<label>Ссылка:</label><br/>
<input type="text" name="link" value=""/><br/>
<input type="submit" name="addlink" value="Сохранить"/>
</FORM>
<a href="admin.php?do=rekl_look">Рекламных ссылок</a> (' . $rek . ')';
break;
case rekl_look:
if ($user['level'] == 4) {
header('Location: admin.php?');
die();
}
echo $div_title . 'Рекламные ссылки' . $div_end;
if (isset($_GET['x'])) {
$x = my_int($_GET['x']);
$em = mysql_query("SELECT `id` FROM `reklama` WHERE `id` = '$x' LIMIT 1");
if (mysql_num_rows($em) == FALSE) {
err('Ошибка!');
} else {
mysql_query("DELETE FROM `reklama` WHERE `id` = '$x' LIMIT 1");
msg('Рекламная ссылка удалена!');
}
}
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `reklama`"), 0);
if ($count != false) {
$n = new navigator($count, 5, '?do=rekl_look&');
$result = mysql_query("SELECT * FROM `reklama` ORDER BY `id` DESC {$n->limit}");
$d = 0;
while($sql = mysql_fetch_assoc($result)) {
$del = '<a href="admin.php?do=rekl_look&x='.$sql['id'].'"><img src="ico/delete.gif" alt=""/></a> ';
echo ($d ++ % 2) ? $div_tworazdel : $div_razdel;
echo $del . $sql['link'] . '<br/>' . $sql['name'] . $div_end;
}
echo $n->navi();
} else {
echo 'Рекламных ссылок нет!<br/>';
}
break;
// новости
case news:
echo $div_title . 'Новости' . $div_end .'
» <a href="admin.php?do=addnews">Добавить новость</a><br/>
» <a href="admin.php?do=delnews">Удалить новость</a><br/>';
break;
// добавление новостей
case addnews:
echo $div_title . 'Новости' . $div_end;
if (isset($_POST['ok'])) {
$name = trim(mysql_real_escape_string(check($_POST['name'])));
$content = trim(mysql_real_escape_string(check($_POST['content'])));
$empnews = mysql_query("SELECT `id` FROM `news` WHERE `name` = '$name' LIMIT 1");
if (empty($name)) {
err('Не заполнено название!');
} elseif (empty($content)) {
err('Не заполнено содержание!');
} elseif (mysql_num_rows($empnews) != FALSE) {
err('Такая новость уже имеется!');
} else {
mysql_query("INSERT INTO `news` SET
`date` = '" . time() . "',
`name` = '$name',
`content` = '$content'");
$lid = mysql_insert_id();
header('Location: news.php?do=view&i=' . $lid);
}
}
echo '<FORM method="POST" action="admin.php?do=addnews">
<label>Название:</label><br/>
<input type="text" name="name"/>
<br/>
<label>Содержание:</label><br/>
<textarea name="content" cols="30" rows="5" style="width: 99%;"></textarea>
<br/>
<input type="submit" name="ok" value="Создать"/>
</FORM>';
break;
// редактор новостей
case editnews:
echo $div_title . 'Новости' . $div_end;
$i = my_int($_REQUEST['i']);
$n = mysql_query("SELECT * FROM `news` WHERE `id` = '$i' LIMIT 1");
$inf = mysql_fetch_assoc($n);
$empnews = mysql_query("SELECT `id` FROM `news` WHERE `name` = '$name' LIMIT 1");
if (isset($_POST['ok'])) {
$name = trim(mysql_real_escape_string(check($_POST['name'])));
$content = trim(mysql_real_escape_string(check($_POST['content'])));
if (empty($name)) {
err('Не заполнено название!');
} elseif (empty($content)) {
err('Не заполнено содержание!');
} elseif (mysql_num_rows($empnews) != FALSE) {
err('Такая новость уже имеется!');
} else {
mysql_query("UPDATE `news` SET `name` = '$name', `content` = '$content', `edit` = '" . time() . "' WHERE `id` = '$i'");
header('Location: news.php?do=view&i=' . $i);
}
}
if (mysql_num_rows($n) == FALSE) {
header('Location: news.php?');
} else {
echo 'Редактировать:<br/>
<FORM method="POST" action="admin.php?do=editnews">
<input type="text" name="name" value="' . $inf['name'] . '"/>
<br/><br/>
<textarea name="content" cols="30" rows="5" style="width: 99%;">' . back_bb($inf['content']) . '</textarea>
<br/>
<input type="hidden" name="i" value="' . $i . '"/>
<input type="submit" name="ok" value="Изменить"/>
</FORM>';
}
break;
// удаление новостей
case delnews:
echo $div_title . 'Новости' . $div_end;
if (isset($_GET['i'])) {
$i = my_int($_GET['i']);
$n = mysql_query("SELECT * FROM `news` WHERE `id` = '$i' LIMIT 1");
if (mysql_num_rows($n) == FALSE) {
header('Location: news.php?');
} else {
mysql_query("DELETE FROM `news` WHERE `id` = '$i' LIMIT 1");
mysql_query("DELETE FROM `newscomm` WHERE `id_new` = '$i'");
mysql_query("DELETE FROM `rating_news` WHERE `uid` = '$i'");
msg('Новость удалена!');
}
}
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `news`"), 0);
if ($count != false) {
$n = new navigator($count, 10, '?do=editnews&');
$result = mysql_query("SELECT * FROM `news` ORDER BY `id` DESC {$n->limit}");
$i = 0;
while($q = mysql_fetch_assoc($result)) {
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo '<a href="admin.php?do=delnews&i='.$q['id'].'"><img src="ico/delete.gif" alt=""/></a> ' . $q['name'] . $div_end;
}
echo $n->navi();
} else {
echo 'Новостей нет!<br/>';
}
break;
}
echo '<br/>« <a href="admin.php?">Админ-панель</a>';
include 'system/foot.php';
?>