Просмотр файла room.php

Размер файла: 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&amp;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&amp;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&amp;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&amp;ses=$s&amp;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&amp;ses=$s\">Новые сообщения[$newmess[0]]</a><br />";
    	print '</div>
    	<form action="write.php?str=xhtml&amp;ses='.$s.'&amp;room='.$room.'" method="post"><div>
    	<a href="room.php?str='.$str.'&amp;ses='.$s.'&amp;room='.$room.'">Обновить</a>|<a href="online.php?str='.$str.'&amp;ses='.$s.'&amp;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&amp;str=wml&amp;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&amp;str=wml&amp;room=$room\" 			method=\"get\"/></do>
			<do type=\"options\" name=\"online\" label=\"Кто где?\"><go href=\"online.php?ses=$s&amp;str=wml&amp;room=$room\" method=\"get\"/></do>
			<do type=\"options\" name=\"letters\" label=\"Почта ($newmess[0])\"><go href=\"friend.php?ses=$s&amp;str=wml&amp;room=$room\" method=\"get\"/></do>
			<do type=\"options\" name=\"menu\" label=\"Прихожая\"><go href=\"enter.php?ses=$s&amp;str=wml&amp;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&amp;str=$str&amp;login=$mess[nick]&amp;room=$room\">$mess[nick]</a>$pr  ($time)&gt;";
   			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&amp;ses=$s&amp;page=".($page-1)."&amp;room=$room\">Назад</a><br />";
   		if(mysql_num_rows($result_mess)>$info['messroom'])
   		print "<a href=\"room.php?str=$str&amp;ses=$s&amp;page=".($page+1)."&amp;room=$room\">далее</a><br />";
    	print $razd."<a href=\"enter.php?str=$str&amp;ses=$s\">Прихожая</a><br />";
    	
    	
    	
    	
    	
    	//////////////
    	//Ноги
    	if($str=='xhtml')
  		print ''.$endpage;
  		else
  			{
  			$nocache=rand(1,1000);
  			echo "
  			<a href=\"room.php?str=xhtml&amp;ses=$s&amp;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&amp;str=wml&amp;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&amp;str=wml&amp;room=$room\">Назад</a><br/>
			</p></card></wml>";
  			}
    	}
    
	}

print '<!-- '.(microtime()-$mt).' -->';
?>