Размер файла: 10.36Kb
<?php
function antimat($string){
$string=preg_replace('/(с|c|С|C)(у|y|Y|У)(ч|4|Ч)?(к|k|K|К|ча|чa|4a|4а)?(а|a)/i',"***",$string);
$string=preg_replace('/(п|n|П)(и|u|И)(д|g|Д)(о|o|0|a|а|e|е)?(р|p)(а|a)?(з|c|с)?/i',"***",$string);
$string=preg_replace('/(х|x|X|Х)(у|У|Y|y)(й|и|Й|И|u|е|e|Е|Ё|ё)(b|в)?(o|0|о|a|а)?/i',"***",$string);
$string=preg_replace('/(п|n|П)(и|u|И)(з|3|З)(д|g|Д)?/i',"***",$string);
$string=preg_replace('/(е|e|E|Е)(б|6|Б)(а|a|А|A)(т|л)?/i',"***",$string);
$string=preg_replace('/(б|6|Б)(л|Л)(я|Я)(T|t|Д|т|д)/i',"***",$string);
return $string;}
$mt=microtime();
require_once('db.php');
require_once('nast.php');
include_once('fsmile.php');
@session_start();
$s=htmlspecialchars(session_id());
if(!@$_SESSION['enter'])
{
include_once('shapka.php');
print $beginpage;
print "Авторизация не удалась.<br />
Возможно вы ввели неверные логин или пароль, либо истекло время жизни сессии<br />
<a href=\"index.php?str=$str\">Повторить ввод</a><br />";
print $endpage;
exit;
}
else
{
////////////////////////////////////////
////////////////////////////////////////
$time=time();
$info=mysql_fetch_assoc(mysql_query("SELECT * from `user` WHERE `uid`='$_SESSION[uid]' limit 1"));
mysql_query("UPDATE `user` SET `ldate`='$time' WHERE `uid`='$_SESSION[uid]' limit 1");
/////////////////////////////////////////
/////////////////////////////////////////
//Инфа о комнате
$room=intval(@$_GET['room']);
$result_room=mysql_query("SELECT * from `room` WHERE `rid`='$room' limit 1");
//Если нет такой комнаты
if(!mysql_num_rows($result_room))
{
include_once('shapka.php');
print $beginpage;
print "Указанной комнаты не существует<br />";
print $razd."<a href=\"enter.php?str=$str&ses=$s\">Прихожая</a><br />";
print $endpage;
exit;
}
//Если забанен
elseif($info['status']<2 or $time<$info['bantime'])
{
include_once('shapka.php');
print $beginpage;
print "Вы забанены.Вам запрешен вход в эту комнату<br />";
print $razd."<a href=\"enter.php?str=$str&ses=$s\">Прихожая</a><br />";
print $endpage;
exit;
}
$roominfo=mysql_fetch_assoc($result_room);
if($roominfo['status']>$info['status']+1 and $roominfo['status']!=9)
{
include_once('shapka.php');
print $beginpage;
print "Недостаточно прав для просмотра этой комнаты<br />";
print $razd."<a href=\"enter.php?str=$str&ses=$s\">Прихожая</a><br />";
print $endpage;
exit;
}
else
{
$newmess=mysql_fetch_row(mysql_query("SELECT count(*) from `pmess` WHERE `to`='$_SESSION[login]' AND `status`=1"));
if($info['ip']==mysql_real_escape_string($_SERVER['REMOTE_ADDR']) and $info['useragent']==mysql_real_escape_string(htmlspecialchars(substr($_SERVER['HTTP_USER_AGENT'],0,40))))
mysql_query("UPDATE `user` SET `ldate`='$time',`place`='9999' WHERE `uid`='$_SESSION[uid]'");
else
{
$ip1=mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$user1=mysql_real_escape_string(htmlspecialchars(substr($_SERVER['HTTP_USER_AGENT'],0,40)));
$ips = explode('.',$ip1);
$longip = $ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256;
mysql_query("UPDATE `user` SET `ldate`='$time',`place`='9999',`ip`='$ip1',`useragent`='$user1',`longip`='$longip' WHERE `uid`='$_SESSION[uid]'");
}
//$roominfo=mysql_fetch_assoc($result_room);
$title=$roominfo['title'];
///////Шапка
if($info['refresh'])
$refr='<meta http-equiv="Refresh" content="'.(ceil($info['refresh']/10)).';URL='.htmlspecialchars(basename($_SERVER['REQUEST_URI'])).'"/>';
include_once('shapka.php');
//Боты
if($roominfo['shut'])
{
include('incbot/shut.inc');
}
if($roominfo['umnik'])
{
include('incbot/umnik.inc');
}
if($info['sequrity'])
{
$ip1=mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$user1=mysql_real_escape_string(htmlspecialchars(substr($_SERVER['HTTP_USER_AGENT'],0,40)));
if($user1!=$info['useragent'] or $ip1!=$info['ip'])
{print $beginpage;
print '<b>Предупреждение о безопасности!</b>
Ваш текущий ip адрес или браузер не совпадает с ip или браузером последнего захода.<br />
Если вы в последнее время не использовали ip '.$_SESSION['ip'].' и браузер '.$_SESSION['user'].' -это может означать, что кто-то заходил с вашего ника<br />
Рекомендуем сменить пароль<br />
Отключить систему безопасности можно в настройках чата<br />
<br />';
$_SESSION['user']=$user1;
$_SESSION['ip']=$ip1;
mysql_query("UPDATE `user` SET `useragent`='$_SESSION[user]',`ip`='$ip1' WHERE `uid`='$_SESSION[uid]'");
print "<a href=\"room.php?str=$str&ses=$s&room=$room\">Продолжить</a>";
print $endpage;
exit;
}
}
if($str=='xhtml')
{
print $beginpage;
print $vydel.'Комната: '.$roominfo['name'].'<br />'.$vydel1;
if($newmess[0])
print "<a href=\"friend.php?str=$str&ses=$s\">Новые сообщения[$newmess[0]]</a><br />";
print '</div>
<form action="write.php?str=xhtml&ses='.$s.'&room='.$room.'" method="post"><div>
<a href="room.php?str='.$str.'&ses='.$s.'&room='.$room.'">Обновить</a>|<a href="online.php?str='.$str.'&ses='.$s.'&room='.$room.'">Кто где?</a><br />
Сообщение:<br/> <input name="msg" maxlength="300" value="" title="nick"/><br/>';
if($info['translit'])
print '
Транслит: <input type="checkbox" name="translit" value="1"/><br/>';
print '<input class="ibutton" type="submit" value="отправить"/></div></form><div class="left">';
}
else
{
print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE wml PUBLIC \"-//WAPFORUM//DTD WML 1.3//EN\" \"http://www.wapforum.org/DTD/wml13.dtd\"><wml>
<head><meta http-equiv=\"Cache-Control\" content=\"no-cache\" forua=\"true\"/></head>
<card id=\"chat\" title=\"$title\" ontimer=\"".$_SERVER['PHP_SELF']."?ses=$s&str=wml&room=$room\">
<timer value=\"$info[refresh]\"/>
<do type=\"options\" name=\"add\" label=\"Сказать\"><go href=\"#add\" method=\"get\"/></do>
<do type=\"options\" name=\"refresh\" label=\"Обновить\"><go href=\"room.php?ses=$s&str=wml&room=$room\" method=\"get\"/></do>
<do type=\"options\" name=\"online\" label=\"Кто где?\"><go href=\"online.php?ses=$s&str=wml&room=$room\" method=\"get\"/></do>
<do type=\"options\" name=\"letters\" label=\"Почта ($newmess[0])\"><go href=\"friend.php?ses=$s&str=wml&room=$room\" method=\"get\"/></do>
<do type=\"options\" name=\"menu\" label=\"Прихожая\"><go href=\"enter.php?ses=$s&str=wml&room=$room\" method=\"get\"/></do>
<p align=\"left\">";
}
////////////////////////////
$page=intval(@$_GET['page']);
$start=$page * $info['messroom'];
$st=$start+1;
$end=$start + 1 + $info['messroom'];
$result_mess=mysql_query("SELECT * from `mess` WHERE `room`='$room' AND `nick` NOT in (SELECT `login` FROM `ignor` WHERE `nick`='$_SESSION[login]') AND (`status`='0' OR `inwho`='$_SESSION[login]' or `nick`='$_SESSION[login]') ORDER by `time` DESC limit $start,$end") or die(mysql_error());
while($mess=mysql_fetch_assoc($result_mess))
{
if($mess['status'])
$pr='<b>[P!]</b>';
else
$pr='';
if($info['antimat'])
$mess['mess']=antimat($mess['mess']);
if($info['smile'])
$mess['mess']=smileall($mess['mess']);
$time=date('H:i',$mess['time']);
print "<a href=\"anketa.php?ses=$s&str=$str&login=$mess[nick]&room=$room\">$mess[nick]</a>$pr ($time)>";
if($mess['inwho'])
print "<u>$mess[inwho]</u>, ";
print "$mess[mess]<br />
";
$st++;
if($st>=$end)
break;
}
if($start>0)
print "<a href=\"room.php?str=$str&ses=$s&page=".($page-1)."&room=$room\">Назад</a><br />";
if(mysql_num_rows($result_mess)>$info['messroom'])
print "<a href=\"room.php?str=$str&ses=$s&page=".($page+1)."&room=$room\">далее</a><br />";
print $razd."<a href=\"enter.php?str=$str&ses=$s\">Прихожая</a><br />";
//////////////
//Ноги
if($str=='xhtml')
print ''.$endpage;
else
{
$nocache=rand(1,1000);
echo "
<a href=\"room.php?str=xhtml&ses=$s&room=$room\">xhtml</a>|wml<br /></p></card><card id=\"add\" title=\"Сказать\"><p align=\"left\">
Сообщение:<br/>
<input type=\"text\" name=\"msg$nocache\" maxlength=\"300\" value=\"\"/><br/>";
if($info['translit'])
{
echo "Транслит:<br/>\n";
echo "<select name=\"translit$nocache\" value=\"true\">\n";
echo "<option value=\"true\">Да</option>\n";
echo "<option value=\"false\">Нет</option>\n";
echo "</select><br/>\n";
}
print "<anchor>[Сказать]<go href=\"write.php?ses=$s&str=wml&room=$room\" method=\"post\">
<postfield name=\"msg\" value=\"$(msg$nocache)\"/>
<postfield name=\"translit\" value=\"$(translit$nocache)\"/>
<postfield name=\"attributs\" value=\"$(attributs$nocache)\"/>
<postfield name=\"fsize\" value=\"$(fsize$nocache)\"/>
<postfield name=\"emotions\" value=\"$(emotions$nocache)\"/>
</go></anchor><br/>
<a href=\"room.php?ses=$s&str=wml&room=$room\">Назад</a><br/>
</p></card></wml>";
}
}
}
print '<!-- '.(microtime()-$mt).' -->';
?>