Просмотр файла chat/index.php

Размер файла: 13.14Kb
<?php
#----------------------------------------------------------------#
#               ********* COOL-WAPA *********                    #
#                      Автор  :  Dog09                           #
#               E-mail  :  [email protected]                   #
#      Официальный сайт сайт проекта: : http://siza.pp.ua        #
#                  ICQ  :  617-333-896                           #
#      Вы не имеете право вносить изменения в код скрипта        #
#            для его дальнейшего распространения                 #
#----------------------------------------------------------------# 
require('../include/cfg.php');
require('../include/aut.php');
require('../include/head.php');
require('../functions/msg_code.php');

if($_SESSION['aut']===FALSE&&intval($access[2])==0)
{
echo'<div class=head><img src="/image/chat.png" alt="image" /> Чат</div><br>
	 <div class=head>Вы не вошли в систему и по этому не можете общаться в чате!<br>
	 <a href="../index.php?'.$sid.'&amp;mod=aut">Вход</a> |
	 <a href="../index.php?'.$sid.'&amp;mod=reg">Регистрация</a></div>
	';
require('../include/foot.php');exit;
}
$e=intval($set[4]);// сообщений на страницу
switch($mod){
#########################################
case('index'):
echo'<div class=head><img src="/image/chat.png" alt="image" /> Комнаты чата :</div><br>
	 <div class=head>&raquo; <a href="'.SELF.'mod=intim">Приватная комната</a><br>
     &raquo; <a href="'.SELF.'mod=question">Клуб знатоков</a> ['.mysql_result(mysql_query('SELECT count(*) FROM `online` WHERE `map`="chat?mod=question&id=1";'),0).']<br>';

$q=mysql_query('SELECT * FROM `c_room` ORDER BY `i`;');

if(mysql_num_rows($q)>0)
{
while($row=mysql_fetch_assoc($q))
	{$online=mysql_query('SELECT `user` FROM `online` WHERE `map`="chat?mod=room&id='.$row['id'].'";');
	 $num_rows=mysql_num_rows($online);if($num_rows>0){$onl='['.$num_rows.']<br>';
	 for($i=0;$i<$num_rows;$i++){$lll=mysql_fetch_row($online);if($i!=$num_rows-1){$onl.=$lll[0].', ';}else{$onl.=$lll[0];}}}else{$onl='[0]';}
	 echo'&#187; <a href="'.SELF.'mod=room&amp;id='.$row['id'].'">'.$row['name'].'</a> '.$onl.'<br>';}
}else{echo 'Комнаты не созданы!';}
echo'</div>';
// онлайн в прихожей
$q=mysql_query('SELECT `user` FROM `online` WHERE `map` LIKE "chat?mod=index%";');
$num_rows=mysql_num_rows($q);if($num_rows>0){$onl='В прихожей ['.$num_rows.']:<br>';
for($i=0;$i<$num_rows;$i++){$lll=mysql_fetch_row($q);if($i!=$num_rows-1){$onl.=$lll[0].', ';}else{$onl.=$lll[0];}}}else{$onl='В прихожей[0]';}
echo'<br>'.$onl.'<br>';

break;
#########################################
case('room'):
if(is_numeric(@$_GET['id']))
{$id=$_GET['id'];}else{echo'Ошибка комната не существует!<br>';require('../include/foot.php');exit;}
// параметры комнаты
if($room=mysql_fetch_assoc(mysql_query('SELECT * FROM `c_room` WHERE `id`='.$id.' LIMIT 1;')))
{}else{echo'Ошибка комната не существует!<br>';require('../include/foot.php');exit;}

// если надо добавляем сообщение
if((int)@$_GET['tmp']== @$_SESSION['tmp']&&isset($_POST['msg'])&&$_POST['msg']!='')
	{
	 if(@$_POST['privat']==1){$privat=mysql_escape_string(htmlspecialchars(trim($_GET['to'])));}else{$privat='';}
	 mysql_query('INSERT INTO `c_post` SET `msg`="'.msg_encode($_POST['msg']).'",`name`="'.$user['log'].'",`time`='.time().',`room`='.$id.',`privat`="'.$privat.'";');
	 $user['postchat']++;
	}
$_SESSION['tmp']=rand(1,999);

echo'<div class=head>'.$room['name'].'</div>
 	 <form method="post" action="'.SELF.'mod=room&amp;tmp='.$_SESSION['tmp'].'&amp;id='.$id.'">
 	 Написать :<br>
 	 <textarea name="msg" cols="20" rows="3"></textarea><br>
 	 <input type="submit" value="Сказать"></form>
 	 <a href="'.SELF.'mod=room&amp;tmp='.$_SESSION['tmp'].'&amp;id='.$id.'">Обновить</a><br>';

// определяем страницу
$c=mysql_result(mysql_query('SELECT count(*) FROM `c_post` WHERE `room`='.$id.';'),0);
if(is_numeric(@$_GET['p'])&&(int)@$_GET['p']<=ceil($c/$e)){$p=(int)$_GET['p'];}
else{$p=1;}
//////////////////////

$q=mysql_query('SELECT * FROM `c_post` WHERE `room`='.$id.' ORDER BY `id` DESC LIMIT '.(($p*$e)-$e).','.$e.';');

while($row=mysql_fetch_assoc($q))
{
	if($row['privat']==$user['log']){echo'<div class=a>{<b>П</b>}<a href="'.SELF.'mod=say&amp;to='.$row['name'].'&amp;id='.$id.'">'.$row['name'].'</a>['.date('H:i',$row['time']).']</div>'.$row['msg'].'<br>';}
	else{echo'<div class=a>&#187; <a href="'.SELF.'mod=say&amp;to='.$row['name'].'&amp;id='.$id.'">'.$row['name'].'</a>['.date('H:i',$row['time']).']</div>'.$row['msg'].'<br>';}
}

# выводим навигацию ################################
echo'<br>Страницы:';$prev=$p-2;$next=$p+3;$stall=ceil($c/$e);

if($prev<$c&&$prev>1){echo'<a href="'.SELF.'p=1&amp;mod='.$mod.'&amp;id='.$id.'">1</a> ... ';}

for($i=$prev;$i<$next;)
{
if($i<=$stall&&$i>=1){
if($p==$i){echo'<b>('.$i.')</b>';}else{echo' <a href="'.SELF.'p='.($i).'&amp;mod='.$mod.'&amp;id='.$id.'">'.$i.'</a> ';}
				    }
$i++;}
if($next<=$stall){echo ' ... <a href="'.SELF.'p='.$stall.'&amp;mod='.$mod.'&amp;id='.$id.'">'.$stall.'</a>';}
####################################################

echo'<div class=head>&lt;&lt; <a href="'.SELF.'">В прихожую</a></div>';
break;
#########################################
case('intim'):
echo'<div class=head>Приватная комната</div><br>';
if(@$_GET['i']=='reset'){unset($_SESSION['key']);}
if(empty($_SESSION['key'])){if(empty($_POST['key'])){
	echo'
	<form method="post" action="'.SELF.'mod=intim">
	Ключ комнаты :<br>
 	<input name="key" maxlength="25" value=""><br>
 	<input type="submit" value="Войти"></form>';

echo'<div class=head>&lt;&lt; <a href="'.SELF.'">В прихожую</a></div>';
include('../include/foot.php');exit(); 													
													}else{$_SESSION['key']=htmlspecialchars(trim($_POST['key']));}}

$key=$_SESSION['key'];
echo'Ключ комнаты: "<b>'.$key.'</b>"<br><a href="'.SELF.'mod=intim&amp;i=reset">Сменить ключ</a><br>';
$key=md5($key);

#########
if(is_file('../data/chat/intim/'.$key.'.chat')){}else{$fp=fopen('../data/chat/intim/'.$key.'.chat','a');fclose($fp);chmod('../data/chat/intim/'.$key.'.chat',0666);}

if((int)@$_GET['tmp']== @$_SESSION['tmp']&&isset($_POST['msg'])&&$_POST['msg']!='')
	{
	 $msg=msg_encode($_POST['msg']);
	 $fp=fopen('../data/chat/intim/'.$key.'.chat','a');
	 fputs($fp,$msg.'::+w+::'.$user['log'].'::+w+::'.time().'::+w+::'."\n");
	 fclose($fp);chmod('../data/chat/intim/'.$key.'.chat',0666);
	}
$_SESSION['tmp']=rand(1,999);

echo'
 <form method="post" action="'.SELF.'mod=intim&amp;tmp='.$_SESSION['tmp'].'">
 Написать :<br>
 <textarea name="msg" cols="20" rows="3"></textarea><br>
 <input type="submit" value="Сказать"></form>
 <a href="'.SELF.'mod=intim&amp;tmp='.$_SESSION['tmp'].'">Обновить</a><br>';

$chat=array_reverse(file('../data/chat/intim/'.$key.'.chat'));
if(sizeof($chat)>100)
					{
					$f=fopen('../data/chat/intim/'.$key.'.chat','w');
					for($j=0;$j<50;$j++){$chat2[]=$chat[$j];}
					$chat2=array_reverse($chat2);
					for($j=0;$j<50;$j++){fputs($f,$chat2[$j]);}
					fclose($f); chmod('../data/chat/intim/'.$key.'.chat',0666);
$chat=array_slice(array_reverse(file('../data/chat/intim/'.$key.'.chat')),0,10);
					}else{$chat=array_slice($chat,0,10);}

$cchat=sizeof($chat);

if($cchat!=0)
	{#
for($j=0;$j<$cchat;$j++)
	{$post=explode('::+w+::',$chat[$j]);$post[3]=trim($post[3]);
	echo'<div class=a>'.$post[1].' ['.date('H:i',$post[2]).']</div>'.$post[0].'<br>';
	}}#

echo'<div class=head>&lt;&lt; <a href="'.SELF.'">В прихожую</a></div>';
#########

break;
#########################################
case('question'):

echo'<div class=head>Комната Викторина</div>';

// добавляем сообщение
if((int)@$_GET['tmp']== @$_SESSION['tmp']&&isset($_POST['msg'])&&$_POST['msg']!='')
	{
	 $msg=msg_encode($_POST['msg']);
	 $fp=fopen('../data/chat/question/room.chat','a');
	 fputs($fp,$msg.'::+w+::'.$user['log'].'::+w+::'.time().'::+w+::'."\n");
	 fclose($fp); chmod('../data/chat/question/room.chat',0666);
	 $user['postchat']++;
	}
// бот ...
$bot=file('../data/chat/question/bot.chat');$bot=explode('::',$bot[0]);
if(trim($bot[2])<time()-60*2)
{
$quest=file('../data/chat/question/questions.dat');
$cquest=rand(0,count($quest)-1);

$fp=fopen('../data/chat/question/bot.chat','w');
fputs($fp,trim($quest[$cquest]).'::'.time());
fclose($fp);chmod('../data/chat/question/bot.chat',0666);

$bot=file('../data/chat/question/bot.chat');$bot=explode('::',$bot[0]);
}
elseif(strtolower($bot[1])==strtolower(trim(@$_POST['msg'])) && (int)@$_GET['tmp']== @$_SESSION['tmp'])
{
$user['quest']++;

	 $fp=fopen('../data/chat/question/room.chat','a');
	 fputs($fp,'Гениально! <b>'.$user['log'].'</b> отвечает правильно на '.($user['quest']).' вопрос!<br>Правильный ответ был: <b>'.$bot[1].'</b>::+w+::Магистр::+w+::'.time().'::+w+::'."\n");
	 fclose($fp); chmod('../data/chat/question/room.chat',0666);

$quest=file('../data/chat/question/questions.dat');
$cquest=rand(0,count($quest)-1);

$fp=fopen('../data/chat/question/bot.chat','w');
fputs($fp,trim($quest[$cquest]).'::'.time());
fclose($fp);chmod('../data/chat/question/bot.chat',0666);

$bot=file('../data/chat/question/bot.chat');$bot=explode('::',$bot[0]);
}
echo'<b>Вопрос:</b> '.$bot[0];
/////////////////////////////////////////

$_SESSION['tmp']=rand(1,999);

echo'
 <form method="post" action="'.SELF.'mod=question&amp;tmp='.$_SESSION['tmp'].'">
 Написать :<br>
 <textarea name="msg" cols="20" rows="3"></textarea><br>
 <input type="submit" value="Сказать"></form>
 <a href="'.SELF.'mod=question&amp;tmp='.$_SESSION['tmp'].'">Обновить</a><br>';

$chat=array_reverse(file('../data/chat/question/room.chat'));
if(sizeof($chat)>100)
					{
					$f=fopen('../data/chat/question/room.chat','w');
					for($j=0;$j<50;$j++){$chat2[]=$chat[$j];}
					$chat2=array_reverse($chat2);
					for($j=0;$j<50;$j++){fputs($f,$chat2[$j]);}
					fclose($f); chmod('../data/chat/question/room.chat',0666);
$chat=array_slice(array_reverse(file('../data/chat/question/room.chat')),0,10);
					}else{$chat=array_slice($chat,0,10);}

$cchat=sizeof($chat);

if($cchat!=0)
	{#
for($j=0;$j<$cchat;$j++)
	{$post=explode('::+w+::',$chat[$j]);$post[3]=trim($post[3]);
	if($post[3]==$user['log']){echo'<div class=a>"'.SELF.'mod=say&amp;to='.$post[1].'">'.$post[1].'</a>['.date('H:i',$post[2]).']</div>'.$post[0].'<br>';}
	else{echo'<div class=a>&#187; <a href="'.SELF.'mod=say&amp;to='.$post[1].'&amp;id=question">'.$post[1].'</a>['.date('H:i',$post[2]).']</div>'.$post[0].'<br>';}
	}}#

echo'<div class=head>&lt;&lt; <a href="'.SELF.'">В прихожую</a></div>';

break;
#########################################
case('say'):
if(is_numeric(@$_GET['id'])||@$_GET['id']=='question')
{$id=$_GET['id'];}else{echo'Ошибка комната не существует!<br><div class=head>&lt;&lt; <a href="'.SELF.'">В прихожую</a></div>';
require('../include/foot.php');exit;}
// параметры комнаты
if($room= @mysql_fetch_assoc(mysql_query('SELECT * FROM `c_room` WHERE `id`='.$id.' LIMIT 1;'))){}
elseif(@$_GET['id']=='question'){$room['name']='Викторина';}
else{echo'Ошибка комната не существует!<br><div class=head>&lt;&lt; <a href="'.SELF.'">В прихожую</a></div>';
require('../include/foot.php');
exit;}

if(!empty($_GET['to'])){$to=mysql_escape_string(htmlspecialchars(trim(urldecode($_GET['to']))));}
else{echo'Ошибка!<br><div class=head>&lt;&lt; <a href="'.SELF.'">В прихожую</a></div>';
require('../include/foot.php');
exit;}

$_SESSION['tmp']=rand(1,999);

echo'<div class=head>'.$room['name'].'</div>';
if(is_numeric(@$_GET['id'])){echo'<form method="post" action="'.SELF.'mod=room&amp;tmp='.$_SESSION['tmp'].'&amp;id='.$id.'&amp;to='.$to.'">';}
else{echo'<form method="post" action="'.SELF.'mod=question&amp;tmp='.$_SESSION['tmp'].'&amp;to='.$to.'">';}
echo'Написать :<br>
 <textarea name="msg" cols="20" rows="3">'.$to.', </textarea><br>
 <select name="privat"><option value="0">всем</option><option value="1">приватно</option></select><br>
 <input type="submit" value="Сказать"></form>
 <a href="../str/index.php?'.sid.'&amp;uz='.$to.'">Анкета '.$to.'</a><br>
 	';

echo'<br>&lt; <a href="'.SELF.'mod=room&amp;id='.$id.'">'.$room['name'].'</a><br>';
echo'<div class=head>&lt;&lt; <a href="'.SELF.'">В прихожую</a></div>';
break;
#########################################
default:
echo'Модуль "'.$mod.'" не существует!';
break;
	}
// создаем сценарий для онлайн
$map='chat?mod='.$mod.'&id='.$id;
require('../include/foot.php');
?>