Файл: admin/moder.php
Строк: 414
<?
require'../includes.php';
$align='left';
$title='Модер панель';
head();
aut();
who_add(0,'enter');
levels(5);
switch($mod){
default:
if ($ver!='wml')echo '<form action="moder?mod=view&'.SID.'" method="post">';
echo 'Ник/ID:<br /><input type="text" name="nick" title="Text"/><br />';
if ($ver=='wml'){
echo '<anchor title="go">Искать<go href="moder?mod=view&'.SID.'" method="post">';
echo '<postfield name="nick" value="$nick"/>
<postfield name="mode" value="$mode"/>
</go></anchor><dt></dt><br />';
;
}else{
echo '<input type="submit" class="ibutton" value="Найти"/></form><dt></dt><br />';
}
echo '<dt></dt>» <a href="moder?mod=kiks_list">Список выпнутых</a> ('.mysql_result(query("select count(*) as num from users WHERE kik > '".$time."'"),0).')<br />';
if($v_us["level"]>=6){echo '» <a href="moder?mod=ban_is_list">Список баннов IP и SOFT</a> ('.mysql_result(query("select count(*) as num from bannlist "),0).')<br />';
echo '» <a href="moder?mod=banns_list">Список ников в бане</a> ('.mysql_result(query("select count(*) as num from users WHERE bann > '".$time."'"),0).')<br />';
}
echo '<br />';
break;
case 'view':
if(isset($_POST['nick']))$nick = check($_POST['nick']);
else $nick = check($_GET['nick']);
if (!user($nick))echo 'Такого юзера нет!<br />';
else{
$inf = mysql_fetch_assoc (query ("Select * from users WHERE id='".user_inf($nick)."'"));
if (($inf['level']>$v_us['level'])||$v_us['level']==$inf['level'] && $v_us['id']!=$inf['id'])echo 'Доступ закрыт!<br />';
else{
if ($inf['sex']==1)$sex = 'найден'; else $sex = 'найдена';
echo 'Пользователь <b>'.user($inf['id'],1).'</b> '.$sex.'!<dt></dt><br />';
echo '<a href="moder?mod=kik&nick='.$inf['id'].'">Пнуть</a><br />';
if($v_us["level"]>=6){
echo '<a href="moder?mod=ban_ip_soft&nick='.$inf['id'].'">Банн ip+soft</a><br />';
echo '<a href="moder?mod=ban&nick='.$inf['id'].'">Забанить ник</a><br />';
echo '<br /><a href="moder?mod=edit&nick='.$inf['id'].'"><b>Апдейт юзера</b><br />';
}
//echo '<a href="profile?nick='.$inf['id'].'">Редактировать анкету</a><br />';
//echo '<a href="setting?nick='.$inf['id'].'">Настройки юзера</a><br />';
echo "</a><dt></dt><br />IP: ".$inf['user_ip']."<br/>";
echo "Soft: ".$inf['user_soft']."<br/>";
if ($inf['ver']=='wml') echo "Версия сайта: WML<br/>";
else echo "Версия сайта: xHTML<br/>";
}}
break;
case 'edit':
levels(6);
if ($_GET['i']==1)echo '<b>Изменения сохранены.</b><br />';
if ($_GET['i']==2)echo '<b>Ошибка. Сообщите администрации</b><br />';
if (empty($act)){
if(isset($_POST['nick']))$nick = check($_POST['nick']);
else $nick = check($_GET['nick']);
if (!user($nick))echo 'Такого юзера нет!<br />';
else{
$inf = mysql_fetch_assoc (query ("Select * from users WHERE id='".user_inf($nick)."'"));
if (($inf[level]>$v_us[level])||$v_us[level]==$inf[level] && $v_us[id]!=$inf[id])echo 'Доступ закрыт!<br />';
else{
if ($ver!='wml')echo '<form action="moder?mod='.$mod.'&act=edit&nick='.$inf['id'].'&'.SID.'" method="post">';
echo '<br />Ник:<br /><input name="nik" value="'.$inf['user'].'" emptyok="false"/><br />';
echo 'Статус:<br /><input name="status" value="'.$inf['status'].'" emptyok="false"/><br />';
if ($ver=='wml'){
echo '<br /><anchor title="go">Сохранить<go href="moder?mod='.$mod.'&act=edit&nick='.$inf['id'].'&'.SID.'" method="post">';
echo '
<postfield name="nick" value="$nick"/>
<postfield name="nik" value="$nik"/>
<postfield name="status" value="$status"/>
</go></anchor>';
echo '<br/><br />';
}else{
echo '<input name="nick" type="hidden" value="$nick"/>';
echo '<br /><input type="submit" class="ibutton" value="Сохранить"/></form><br /><br />';
}
}}
}else{
$nick = check($_GET['nick']);
if (!user($nick))echo 'Такого юзера нет!<br />';
else{
$inf = mysql_fetch_assoc (query ("Select * from users WHERE id='".user_inf($nick)."'"));
if (($inf[level]>$v_us[level])||$v_us[level]==$inf[level] && $v_us[id]!=$inf[id])echo 'Доступ закрыт!<br />';
else{
$nik= check($_POST['nik']);
$status= check($_POST['status']);
if ($set['rus']==1){
$lat_nik = rus_to_lat(tolower($nik));
$help = 'В нике цифры разрешено использовать только вместе со знаками латинского или русского алфавита.<br /><br />';
}else{
$lat_nik = rus_to_lat(tolower($nik));
$help = 'В нике цифры разрешено использовать только вместе со знаками латинского алфавита.<br /><br />';
}
if(ctype_digit($nik))$err = $help;
else if (preg_match("/[^1-9a-zA-Z-@*()?!~_=[]]+/", $lat_nik))$msg = 'В нике обнаружены запрешенные знаки!<br />';
else if ($nik === "")$err = $emp;
elseif (strpos($nik,"|")!==false)$msg = 'В нике обнаружены запрешенные знаки!<br /><br />';
if (strlen2($nik) < 4) $err = 'Ник не должен содержать менее 4-ёх знаков!<br /><br />';
else if (strlen2($nik) > 15) $err = 'Ник не должен содержать более 15 знаков!<br /><br />';
$runik = rus_to_lat(tolower($nik));
if(!empty($err)){echo $err; exit;}
//
$messs = '[b]'.$v_us['user'].'[/b] произвел Апдейт пользователя [b]'.$inf['user'].'[/b]<br /> Ник <b>'.$nik.'</b>|Статус: <b>'.$status.'</b>|</b>';
query ("INSERT INTO logs (log,msg,time) VALUES ('edit','$messs','$time')");
//
if(query('UPDATE `users` SET `user` = "'.$nik.'", `ruser` = "'.$runik.'", `status` = "'.$status.'" WHERE `id` = "'.$inf['id'].'"'))
{
header ('Location: moder?mod='.$mod.'&i=1&nick='.$nick.'&'.SID); exit;
}else{
header ('Location: moder?mod='.$mod.'&i=2&nick='.$nick.'&'.SID); exit;
}
}}
}
break;
case 'kik':
levels(5);
if (empty($act)){
if ($ver!='wml')echo '<form action="moder?mod='.$mod.'&act=act&'.SID.'" method="post">';
echo 'Ник/ID:<br /><input type="text" name="nick" value="'.$_GET['nick'].'" title="Ник/ID"/><br />';
echo 'Время:<br /><input type="text" name="na" title="Время"/><br />';
echo '<select name="vremja">
<option value="min">Минуты</option>
<option value="chas">Часы</option>
<option value="sut">Сутки</option>
<option value="mes">Месяцы</option>
</select><br/>';
echo 'Причина:<br /><input type="text" name="whykik" title="Причина"/><br /><br />';
if ($ver=='wml'){
echo '<anchor title="go">Пнуть<go href="moder?mod='.$mod.'&act=act&'.SID.'" method="post">';
echo '<postfield name="nick" value="$nick"/>
<postfield name="na" value="$na"/>
<postfield name="vremja" value="$vremja"/>
<postfield name="whykik" value="$whykik"/>
</go></anchor><br />';
;
}else{
echo '<input type="submit" class="ibutton" value="Пнуть"/></form><dt></dt>';
}
}else{
$nick = check($_POST['nick']);
if (!user($nick))echo 'Такого юзера нет!<br />';
else{
$inf = mysql_fetch_assoc (query ("Select * from users WHERE id='".user_inf($nick)."'"));
if (($inf['level']>$v_us['level'])||$v_us['level']==$inf['level'] && $v_us['id']!=$inf['id'])echo 'Доступ закрыт!<br />';
else{
if ($inf['id']==$v_us['id'])echo 'Себя пинать собрались?!<br />';
else{
if ($inf['id']==1)echo 'Не, <b>'.$inf['user'].'</b> пинать просто не реально!<br />';
else{
if (strlen2($_POST['whykik'])<5)echo 'Причина должна быть более существенной! Не менее 5 символов!<br />';
else{
if ($_POST['na'] < 1 || empty($_POST['na']))echo 'Вы не указали время!<br />';
else{
if ($_POST['vremja']=='min')$na = intval($_POST['na'])*60;
elseif ($_POST['vremja']=='chas')$na = intval($_POST['na'])*60*60;
elseif ($_POST['vremja']=='sut')$na = intval($_POST['na'])*60*60*24;
elseif ($_POST['vremja']=='mes')$na = intval($_POST['na'])*60*60*24*30;
$whykik = check($_POST['whykik']);
$na = $time+$na;
query('UPDATE `users` SET `kik` = "'.$na.'", `whokik` = "'.$v_us[id].'", `whykik` = "'.$whykik.'" WHERE `id` = "'.$inf[id].'" LIMIT 1');
$messs = '[b]'.$v_us['user'].'[/b] выпнул пользователя [b]'.$inf['user'].'[/b] на [b]'.kikt($na).'[/b]<br /> Причина: [b]'.$whykik.'[/b]';
query ("INSERT INTO logs (log,msg,time) VALUES ('kik','$messs','$time')");
if ($set['kik_notify']==1){
$s_post=mysql_result(query("select COUNT(*) from rooms WHERE `system` != '0';"),0);
$k_page=k_page($s_post,$s_post);
$page=page($k_page);
$s1=$s_post*$page-$s_post;
$num = @query("SELECT * from rooms WHERE `system` != '0' order by rm DESC limit $s1, $s_post;" );
while($nums = @mysql_fetch_assoc($num)){
query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$v_us_system','0','$time','$messs','$nums[rm]')");
}
}
echo 'Пользователь <b>'.$inf['user'].'</b> выпнут на <b>'.kikt($na).'</b><br />Причина: <b>'.$whykik.'</b><br />';
}}}}}}
}
break;
case 'ban_ip_soft':
levels(6);
if (empty($act)){
if ($ver!='wml')echo '<form action="moder?mod='.$mod.'&act=act&'.SID.'" method="post">';
echo 'Ник/ID:<br /><input type="text" name="nick" value="'.$_GET['nick'].'" title="Ник/ID"/><br />';
echo 'Причина:<br /><input type="text" name="why" title="Причина"/><br /><br />';
if ($ver=='wml'){
echo '<anchor title="go">Банн<go href="moder?mod='.$mod.'&act=act&'.SID.'" method="post">';
echo '<postfield name="nick" value="$nick"/>
<postfield name="why" value="$why"/>
</go></anchor><br />';
;
}else{
echo '<input type="submit" class="ibutton" value="Банн"/></form><dt></dt>';
}
}else{
$nick = check($_POST['nick']);
if (!user($nick))echo 'Такого юзера нет!<br />';
else{
$inf = mysql_fetch_assoc (query ("Select * from users WHERE id='".user_inf($nick)."'"));
if (($inf['level']>$v_us['level'])||$v_us['level']==$inf['level'] && $v_us['id']!=$inf['id'])echo 'Доступ закрыт!<br />';
else{
if ($inf['id']==$v_us[id])echo 'Себя баннить собрались?!<br />';
else{
if ($inf[id]==1)echo 'Не, <b>'.$inf[user].'</b> забаннить просто не реально!<br />';
else{
if (strlen2($_POST['why'])<5)echo 'Причина должна быть более существенной! Не менее 5 символов!<br />';
else{
$why = check($_POST['why']);
query ("INSERT INTO bannlist SET ip = '".$inf['user_ip']."', soft = '".$inf['user_soft']."', user_id = '".$inf['id']."', who_id = '".$v_us['id']."', why = '".$why."'");
$messs = '[b]'.$v_us['user'].'[/b] забаннил пользователя [b]'.$inf['user'].'[/b] по [b]ip+soft[/b]';
query ("INSERT INTO logs (log,msg,time) VALUES ('ban_ip_soft','$messs','$time')");
if ($set['ban2_notify']==1){
$s_post=mysql_result(query("select COUNT(*) from rooms WHERE `system` != '0';"),0);
$k_page=k_page($s_post,$s_post);
$page=page($k_page);
$s1=$s_post*$page-$s_post;
$num = @query("SELECT * from rooms WHERE `system` != '0' order by rm DESC limit $s1, $s_post;" );
while($nums = @mysql_fetch_assoc($num)){
query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$v_us_system','0','$time','$messs','$nums[rm]')");
}
}
echo 'Пользователь <b>'.$inf['user'].'</b> забанен!<br />Причина: <b>'.$why.'</b><br />Его IP: <b>'.$inf['user_ip'].'</b> | SOFT: <b>'.$inf['user_soft'].'</b><br />';
}}}}}
}
break;
case 'ban_ip':
levels(7);
if (empty($act)){
echo 'IP:<br/><i>Пример: 127.0.0.1 без отступов и пробелов<br/>
Или по маске 127.0.0, 127.0, будут забанены все IP совпадающие по начальным цифрам</i><br/>';
if ($ver!='wml')echo '<form action="moder?mod='.$mod.'&act=act&'.SID.'" method="post">';
echo '<input type="text" name="ban" value="'.$_GET['ipus'].'" title="IP"/><br /><br />';
if ($ver=='wml'){
echo '<anchor title="go">Банн<go href="moder?mod='.$mod.'&act=act&'.SID.'" method="post">';
echo '<postfield name="ban" value="$ban"/>
</go></anchor><br />';
;
}else{
echo '<input type="submit" class="ibutton" value="Банн"/></form><dt></dt>';
}
}else{
$messs = '[b]'.$v_us['user'].'[/b] забаннил пользователя [b]'.$inf['user'].'[/b] по [b]IP: '.$ban.'[/b]';
query ("INSERT INTO logs (log,msg,time) VALUES ('ban_ip','$messs','$time')");
$ban = check($_POST['ban']);
query("INSERT INTO bannip SET ip = '".$ban."', who_id = '".$v_us[id]."'");
echo 'IP <b>'.$ban.'</b> забаннен!<br />';
}
break;
case 'ban':
levels(6);
if (empty($act)){
if ($ver!='wml')echo '<form action="moder?mod='.$mod.'&act=act&'.SID.'" method="post">';
echo 'Ник/ID:<br /><input type="text" name="nick" value="'.$_GET['nick'].'" title="Ник/ID"/><br />';
echo 'Время:<br /><input type="text" name="na" title="Время"/><br />';
echo '<select name="vremja">
<option value="min">Минуты</option>
<option value="chas">Часы</option>
<option value="sut">Сутки</option>
<option value="mes">Месяцы</option>
</select><br/>';
echo 'Причина:<br /><input type="text" name="whyban" title="Причина"/><br /><br />';
if ($ver=='wml'){
echo '<anchor title="go">Банн<go href="moder?mod='.$mod.'&act=act&'.SID.'" method="post">';
echo '<postfield name="nick" value="$nick"/>
<postfield name="na" value="$na"/>
<postfield name="vremja" value="$vremja"/>
<postfield name="whyban" value="$whyban"/>
</go></anchor><br />';
;
}else{
echo '<input type="submit" class="ibutton" value="Банн"/></form><dt></dt>';
}
}else{
$nick = check($_POST['nick']);
if (!user($nick))echo 'Такого юзера нет!<br />';
else{
$inf = mysql_fetch_assoc (query ("Select * from users WHERE id='".user_inf($nick)."'"));
if (($inf[level]>$v_us[level])||$v_us[level]==$inf[level] && $v_us[id]!=$inf[id])echo 'Доступ закрыт!<br />';
else{
if ($inf[id]==$v_us[id])echo 'Себя баннить собрались?!<br />';
else{
if ($inf[id]==1)echo 'Не, <b>'.$inf[user].'</b> забаннить просто не реально!<br />';
else{
if (strlen2($_POST['whyban'])<5)echo 'Причина должна быть более существенной! Не менее 5 символов!<br />';
else{
if ($_POST['na'] < 1 || empty($_POST['na']))echo 'Вы не указали время!<br />';
else{
if ($_POST['vremja']=='min')$na = intval($_POST['na'])*60;
if ($_POST['vremja']=='chas')$na = intval($_POST['na'])*60*60;
if ($_POST['vremja']=='sut')$na = intval($_POST['na'])*60*60*24;
if ($_POST['vremja']=='mes')$na = intval($_POST['na'])*60*60*24*30;
$whyban = check($_POST['whyban']);
$na = $time+$na;
query('UPDATE `users` SET `bann` = "'.$na.'", `whobann` = "'.$v_us[id].'", `whybann` = "'.$whyban.'" WHERE `id` = "'.$inf[id].'" LIMIT 1');
$messs = '[b]'.$v_us['user'].'[/b] забаннил пользователя [b]'.$inf['user'].'[/b] на [b]'.kikt($na).'[/b]<br /> Причина: [b]'.$whyban.'[/b]';
query ("INSERT INTO logs (log,msg,time) VALUES ('ban','$messs','$time')");
if ($set['ban_notify']==1){
$s_post=mysql_result(query("select COUNT(*) from rooms WHERE `system` != '0';"),0);
$k_page=k_page($s_post,$s_post);
$page=page($k_page);
$s1=$s_post*$page-$s_post;
$num = @query("SELECT * from rooms WHERE `system` != '0' order by rm DESC limit $s1, $s_post;" );
while($nums = @mysql_fetch_assoc($num)){
query ("INSERT INTO message (user,user_id,time,msg,rm) VALUES ('$v_us_system','0','$time','$messs','$nums[rm]')");
}
}
echo 'Пользователь <b>'.$inf['user'].'</b> забаннен на <b>'.kikt($na).'</b><br />Причина: <b>'.$whyban.'</b><br />';
}}}}}}
}
break;
case 'kiks_list':
levels(5);
if (isset($_GET['del'])){
query('UPDATE `users` SET `kik` = "0", `whokik` = "0", `whykik` = "" WHERE `id` = "'.intval($_GET['del']).'" and `whokik` = "'.$v_us['id'].'" LIMIT 1');
}
if (empty($v_us['max'])) $v_us['max']=10;
$max = $v_us['max'];
$k_post=mysql_result(query("select count(*) as num from users WHERE kik > '".$time."'"),0);
$k_page=k_page($k_post,$max);
$page=page($k_page);
$start=$max*$page-$max;
$r = query ("Select * from users WHERE kik > '".$time."' order by kik desc LIMIT $start, $max");
if ($k_post == 0)echo '<br />Нет выпнутых!<br />';
else{
if (($max*$page)<$k_post) $maxi = $max*$page; else $maxi = $k_post;
echo 'показаны записи '.($start+1).'-'.$maxi.' из '.$k_post.'<br /><br />';
}
$post_k=$start+1;
while($a = @mysql_fetch_assoc($r)){
echo links.'<b>'.user($a[id],1).'</b> выпнут на '.kikt($a[kik]);
if($a['whokik']==$v_us['id'])echo '[<a href="moder?mod='.$mod.'&del='.$a[id].'">Осв.</a>]';
echo div;
echo 'Выпнул: <b>'.user($a[whokik]).'</b> | Причина: <b>'.$a[whykik].'</b><dl></dl>';
}
if ($k_page>1){
echo "<dl><dt></dt></dl>";
str('moder?mod='.$mod.'&',$k_page,$page); // Вывод страниц
echo "<br /><dl><dt></dt></dl><br />";
}
break;
case 'ban_is_list':
levels(6);
if (isset($_GET['del'])){
@query("delete from `bannlist` WHERE id='".intval($_GET['del'])."' and `who_id` = '".$v_us['id']."';");
}
if (empty($v_us['max'])) $v_us['max']=10;
$max = $v_us['max'];
$k_post=mysql_result(query("select count(*) as num from bannlist "),0);
$k_page=k_page($k_post,$max);
$page=page($k_page);
$start=$max*$page-$max;
$r = query ("Select * from bannlist order by id desc LIMIT $start, $max");
if ($k_post == 0)echo '<br />Список баннов по IP и SOFT пуст...<br />';
else{
if (($max*$page)<$k_post) $maxi = $max*$page; else $maxi = $k_post;
echo 'показаны записи '.($start+1).'-'.$maxi.' из '.$k_post.'<br /><br />';
}
$post_k=$start+1;
while($a = @mysql_fetch_assoc($r)){
echo links.'<b>'.user($a[user_id],1).'</b>['.$a['ip'].'<b>|</b>'.$a['soft'].'] ';
if($a['who_id']==$v_us['id'])echo '[<a href="moder?mod='.$mod.'&del='.$a[id].'">Осв.</a>]';
echo div;
echo 'Забаннил: <b>'.user($a[who_id]).'</b> | Причина: <b>'.$a[why].'</b><dl></dl>';
}
if ($k_page>1){
echo "<dl><dt></dt></dl>";
str('moder?mod='.$mod.'&',$k_page,$page); // Вывод страниц
echo "<br /><dl><dt></dt></dl><br />";
}
break;
case 'banns_list':
levels(6);
if (isset($_GET['del'])){
query('UPDATE `users` SET `bann` = "0", `whobann` = "0", `whybann` = "" WHERE `id` = "'.intval($_GET['del']).'" and `whobann` = "'.$v_us['id'].'" LIMIT 1');
}
if (empty($v_us['max'])) $v_us['max']=10;
$max = $v_us['max'];
$k_post=mysql_result(query("select count(*) as num from users WHERE bann > '".$time."'"),0);
$k_page=k_page($k_post,$max);
$page=page($k_page);
$start=$max*$page-$max;
$r = query ("Select * from users WHERE bann > '".$time."' order by bann desc LIMIT $start, $max");
if ($k_post == 0)echo '<br />Список пуст...<br />';
else{
if (($max*$page)<$k_post) $maxi = $max*$page; else $maxi = $k_post;
echo 'показаны записи '.($start+1).'-'.$maxi.' из '.$k_post.'<br /><br />';
}
$post_k=$start+1;
while($a = @mysql_fetch_assoc($r)){
echo links.'<b>'.user($a[id],1).'</b> выпнут на '.kikt($a[bann]);
if($a['whobann']==$v_us['id'])echo '[<a href="moder?mod='.$mod.'&del='.$a[id].'">Осв.</a>]';
echo div;
echo 'Выпнул: <b>'.user($a['whobann']).'</b> | Причина: <b>'.$a[whybann].'</b><dl></dl>';
}
if ($k_page>1){
echo "<dl><dt></dt></dl>";
str('moder?mod='.$mod.'&',$k_page,$page); // Вывод страниц
echo "<br /><dl><dt></dt></dl><br />";
}
break;
}
echo '<br />';
if ($mod)echo gb.'<a href="moder">Модерка</a>'.div;
echo gb.'<a href="'.H.'enter">Прихожая</a>'.div;
foot(); // автор -=ШАХТЕР=- http://waphp.ru
?>