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

Размер файла: 17.2Kb
<?
include('../core/core.php');
include(BASEDIR.INC.'func.php');
include(BASEDIR.INC.'session.php');
include(BASEDIR.INC.'session_user.php');
$mode = htmlspecialchars($_GET['mode']);
include(BASEDIR.INC.'head.php');
show_title('Мини - Чат :)');
if(is_user()){
include(BASEDIR.MODUL.'chat/chat.php');
include(BASEDIR.INC.'session_chat.php');
$users = mysql_query('SELECT * FROM users WHERE login = "'.$_COOKIE['login'].'"');
$users = mysql_fetch_assoc($users);
$admin = $users['status'];
echo '<div class="razdel">Наш мини-чат!</div>';
$id = abs($_GET['id']);
switch ($mode):
case 'index':
echo'<div class="menu">';
echo'Выберите комнату';
echo'</div>';
define('TOPAGE',10);
$page=(int)$_GET['page'];  
     
   $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `chat`"),0);  
      
    $total = intval(($q - 1) / TOPAGE) + 1;  
      
    if(empty($page) or $page < 0) $page = 1;  
      
    if($page > $total) $page = $total;  
      
    $start = $page * TOPAGE -TOPAGE;  

    $g=mysql_query("SELECT * FROM `chat` ORDER BY `id` DESC LIMIT $start,".TOPAGE."");  
while($u=mysql_fetch_array($g)){ 
	if($u['status'] == 'admin'){$img = '<img src="'.BASEDIR.''.IMG.'personal_chat_admin.png">'; } else {$img = '<img src="'.BASEDIR.''.IMG.'personal_chat_user.png">';}

echo'<div class="menu">';
echo $img.' <a href="?mode=door&id='.$u['id'].'">'.$u['title'].'</a>';
echo'</div>';}

if($q == 0){ echo'<div class="menu">Комнаты еще не созданы!!</div>'; } 
       if ($page != $total) $nextpage = ' <a href="?mode='.$mode.'&page='. ($page + 1) .'">Далее</a>';  
      if($page - 1 > 0) $pageback = '<a href="?mode='.$mode.'&page='. ($page - 1) .'">Назад</a> ';  
echo''.$pageback.' '.$nextpage.'';
break;
case 'new_msg':
echo'<div class="menu">';
$id = abs($_GET['id']);
if($id == !NULL){
$msg = check($_POST['msg']);
$s = $_SESSION['antiflood'] - time();
if($_SESSION['antiflood'] >= time()){echo'Антифлуд! Разрешается отправлять сообщения раз в 30 секунд!<br />
Осталось: >'.formattime($s).'</div>';
}else{
if (utf_strlen($msg) >= 5 && utf_strlen($msg) < 500) {
$data = date("d.m.Y / H:i");
$login = $_COOKIE['login'];
$time = time() + (60 * 15);
$ip = preg_replace('|[^0-9\.]|', '', $_SERVER['REMOTE_ADDR']);
$arbuz = explode("/",$_SERVER['HTTP_USER_AGENT']);
$arbuz = htmlspecialchars($arbuz[0]);
$msg = antimat($msg);
$msg = smiles($msg);
$msg = bb($msg);
$msg = no_br($msg);
mysql_query('INSERT INTO `chat_msg`(`id_chat`, `login`, `msg`, `data`, `arbuz`,`ip`, `time`) VALUES ("'.$id.'","'.$login.'","'.$msg.'","'.$data.'","'.$arbuz.'", "'.$ip.'","'.$time.'")');
//$q=mysql_result(mysql_query("SELECT COUNT(*) FROM `chat_msg` WHERE id_chat = '".$id."'"),0);  
//$total = intval(($q - 1) / 10) + 1;  
header('Location: ?mode=door&id='.$id.'');
$_SESSION['antiflood'] = time() + 30;
echo activ($_COOKIE['login']);
echo rating_plus($_COOKIE['login'],1);
} else { echo'Ошибка! Слишком длинное или короткое сообщение!'; }
}
} else {echo'Ошибка!';}
echo'</div>';
break;
case 'otvet':
$id = abs($_GET['id']);
$chat = mysql_query('SELECT * FROM chat_msg WHERE id = "'.$id.'"');
$chat = mysql_fetch_assoc($chat);
echo'<div class="menu">'.$chat['msg'].'</div>';
echo'<div class="menu">
<form action="?mode=otvet_ok&id='.$chat['id_chat'].'" method="post">
<input name="id_msg" type="hidden" value="'.$chat['id'].'" />
<input name="login" type="hidden" value="'.$chat['login'].'" />
Сообщение (<a href="/pages/smiles.php">Смайлы</a>/<a href="/pages/bb.php">Теги</a>):<br />
<textarea name="msg" cols="40" rows="5"></textarea><br />
<input type="checkbox" name="ck1"> Оповестить по привату<br />
<input type="checkbox" name="ck2"> Приватно<br />
<input name="" type="submit" value="Добавить" />
</form>
</div>';
break;
case 'otvet_ok':
echo'<div class="menu">';
$id = abs($_GET['id']);
if($id == !NULL){
$msg = check($_POST['msg']);
$log = check($_POST['login']);
$id_msg = check($_POST['id_msg']);
$s = $_SESSION['antiflood'] - time();
if($_SESSION['antiflood'] >= time()){echo'Антифлуд! Разрешается отправлять сообщения раз в 30 секунд!<br />
Осталось: >'.formattime($s).'</div>';
}else{
if (utf_strlen($msg) >= 5 && utf_strlen($msg) < 500) {
$data = date("d.m.Y / H:i");
$login = $_COOKIE['login'];
$time = time() + (60 * 15);
$ip = preg_replace('|[^0-9\.]|', '', $_SERVER['REMOTE_ADDR']);
$arbuz = explode("/",$_SERVER['HTTP_USER_AGENT']);
$arbuz = htmlspecialchars($arbuz[0]);
$msg = antimat($msg);
$msg = smiles($msg);
$msg = bb($msg);
$msg = no_br($msg);
$text = '<strong>'.$log.'</strong>, '.$msg.'';
$t = mysql_query("select * from `chat_msg` where `id` = '".$id_msg."'");
$t = mysql_fetch_assoc($t);
$l = $t['login'];
if(isset($_POST['ck2'])){$privat = $l;} else { $privat = NULL; }
mysql_query('INSERT INTO `chat_msg`(`id_chat`, `login`, `msg`, `data`, `arbuz`,`ip`, `time`, `privat`) VALUES ("'.$id.'","'.$login.'","'.$text.'","'.$data.'","'.$arbuz.'", "'.$ip.'","'.$time.'","'.$privat.'")');
if(isset($_POST['ck1'])){
$i = $_COOKIE['login'];
$data = date("d.m.Y H:i:s");
$msg = 'Пользователь <a href="/users/profile.php&user='.$i.'">'.$i.'</a> ответил на ваше сообщение в <a href="/chat/?mode=door&id='.$t['id_chat'].'">чате</a>!';
mysql_query("INSERT INTO `send_mail`(`my_login`, `send_login`, `msg`, `data`) VALUES ('$i','$l','$msg','$data')");
mysql_query("UPDATE `users` SET `my_mail`=`my_mail` + 1 WHERE login = '".$l."'");
}
header('Location: ?mode=door&id='.$id.'');
$_SESSION['antiflood'] = time() + 30;
echo activ($_COOKIE['login']);
echo rating_plus($_COOKIE['login'],1);
} else { echo'Ошибка! Слишком длинное или короткое сообщение!'; }
}
} else {echo'Ошибка!';}
echo'</div>';
break;
case 'door':
if($reflesh >= 1){ echo'<meta http-equiv="refresh" content="'.$reflesh.';URL=http://'.SITE.'/chat/?mode='.$mode.'&id='.$id.'" />';}
if($mes_on_site >= 10){define('TOPAGE',$mes_on_site);} else {define('TOPAGE',$mes_on_page);}
$id = abs($_GET['id']);
if($id == !NULL){
$chat = mysql_query('SELECT * FROM chat WHERE id = "'.$id.'"');
$chat = mysql_fetch_assoc($chat);
echo'<div class="menu"><a href="?mode='.$mode.'&id='.$id.'&page='.$page.'">Обновить</a></div>';
if($chat['status'] == 'admin'){
if (is_admin()) {
echo'<div class="menu">';
echo'<form action="?mode=new_msg&id='.$id.'" method="post">
Сообщение (<a href="/pages/smiles.php">Смайлы</a>/<a href="/pages/bb.php">Теги</a>):<br />
<textarea name="msg" cols="40" rows="5"></textarea><br />
<input name="" type="submit" value="Добавить" />
</form>';
echo'</div>';
//define('TOPAGE',10);
$page=(int)$_GET['page'];  
     
   $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `chat_msg` WHERE id_chat = '".$id."'"),0);  
      
    $total = intval(($q - 1) / TOPAGE) + 1;  
      
    if(empty($page) or $page < 0) $page = 1;  
      
    if($page > $total) $page = $total;  
      
    $start = $page * TOPAGE -TOPAGE;  

    $g=mysql_query("SELECT * FROM `chat_msg` WHERE id_chat = '".$id."' ORDER BY `id` DESC LIMIT $start,".TOPAGE."");  
while($u=mysql_fetch_array($g)){ 
if($chat['status'] == 'admin'){
$login = $u['login'];
$li =mysql_query("SELECT * FROM users WHERE `login`='$login';");
$li = mysql_fetch_assoc($li);
$p = mysql_query('SELECT * FROM session_user WHERE user = "'.$login.'"');
if(mysql_num_rows($p) != 0){ $on ='[<font color="green">On</font>]'; } else { $on ='[<font color="red">Off</font>]'; }
if($li['avatar_mini'] == NULL){ $avatar ='/images/noavatar.gif'; } else {$avatar = ''.$li['avatar_mini'].'';}
echo'<div class="menu">';


echo'<div style="overflow: hidden"><div style="float: left"><img src="'.$avatar.'"></div> <a href="/users/profile.php?user='.$login.'">'.$login.'</a> '.$u['data'].'<br />
 ('.$u['arbuz'].', '.$u['ip'].') '.$on.'</div><hr>';
if($u['privat'] == !NULL){
if($_COOKIE['login'] == $u['privat'] || $_COOKIE['login'] == $u['login']){
echo''.$u['msg'].'';
 } else { echo'Приватное сообщение, видит только адресат...'; }
 } else {
 echo''.$u['msg'].'';
 } 
 
 echo'<hr><div align="right">';
if($u['login'] == $_COOKIE['login']){} else { 
echo'[<a href="?mode=otvet&id='.$u['id'].'">отв</a>]';}
if($admin == 101 || $u['time'] >= time() && $u['login'] == $_COOKIE['login']){ echo'[<a href="?mode=edit&id='.$u['id'].'">изм</a>]'; }
if(is_admin(array(101))){ echo'[<a href="?mode=del&id='.$u['id'].'" onclick="return confirm(\'Вы подтверждаете удаление?\')">Удл</a>]';}
echo'</div></div>';}}

if($q == 0){ echo'<div class="menu">Сообщений еще нету(!</div>'; } 
       if ($page != $total) $nextpage = ' <a href="?mode='.$mode.'&id='.$id.'&page='. ($page + 1) .'">Далее</a>';  
      if($page - 1 > 0) $pageback = '<a href="?mode='.$mode.'&id='.$id.'&page='. ($page - 1) .'">Назад</a> ';  
echo''.$pageback.' '.$nextpage.'';
} else { echo'<div class="menu">Комната только для администрации!</a>'; }
} else {
echo'<div class="menu">';
echo'<form action="?mode=new_msg&id='.$id.'" method="post">
Сообщение (<a href="/pages/smiles.php">Смайлы</a>/<a href="/pages/bb.php">Теги</a>):<br />
<textarea name="msg" cols="40" rows="5"></textarea><br />
<input name="" type="submit" value="Добавить" />
</form>';
echo'</div>';
//define('TOPAGE',10);
$page=(int)$_GET['page'];  
     
   $q=mysql_result(mysql_query("SELECT COUNT(*) FROM `chat_msg` WHERE id_chat = '".$id."'"),0);  
      
    $total = intval(($q - 1) / TOPAGE) + 1;  
      
    if(empty($page) or $page < 0) $page = 1;  
      
    if($page > $total) $page = $total;  
      
    $start = $page * TOPAGE -TOPAGE;  

    $g=mysql_query("SELECT * FROM `chat_msg` WHERE id_chat = '".$id."' ORDER BY `id` DESC LIMIT $start,".TOPAGE."");  
while($u=mysql_fetch_array($g)){ 
if($chat['status'] == 'user'){
$login = $u['login'];
$li =mysql_query("SELECT * FROM users WHERE `login`='$login';");
$li = mysql_fetch_assoc($li);
$p = mysql_query('SELECT * FROM session_user WHERE user = "'.$login.'"');
if(mysql_num_rows($p) != 0){ $on ='[<font color="green">On</font>]'; } else { $on ='[<font color="red">Off</font>]'; }
if($li['avatar_mini'] == NULL){ $avatar ='/images/noavatar.gif'; } else {$avatar = ''.$li['avatar_mini'].'';}
echo'<div class="menu">';


echo'<div style="overflow: hidden"><div style="float: left"><img src="'.$avatar.'"></div> <a href="/users/profile.php?user='.$login.'">'.$login.'</a> '.$u['data'].'<br />
 ('.$u['arbuz'].', '.$u['ip'].') '.$on.'</div><hr>';
if($u['privat'] == !NULL){
if($_COOKIE['login'] == $u['privat'] || $_COOKIE['login'] == $u['login']){
echo''.$u['msg'].'';
 } else { echo'Приватное сообщение, видит только адресат...'; }
 } else {
 echo''.$u['msg'].'';
 }
 
 echo'<hr><div align="right">';
if($u['login'] == $_COOKIE['login']){} else { 
echo'[<a href="?mode=otvet&id='.$u['id'].'">отв</a>]';}
if($admin == 101 || $admin == 102 || $admin == 103 || $admin == 104 || $u['time'] >= time() && $u['login'] == $_COOKIE['login']){ echo'[<a href="?mode=edit&id='.$u['id'].'">изм</a>]'; }
if(is_admin(array(101))){ echo'[<a href="?mode=del&id='.$u['id'].'" onclick="return confirm(\'Вы подтверждаете удаление?\')">Удл</a>]';}
echo'</div></div>';}}

if($q == 0){ echo'<div class="menu">Сообщений еще нету(!</div>'; } 
       if ($page != $total) $nextpage = ' <a href="?mode='.$mode.'&id='.$id.'&page='. ($page + 1) .'">Далее</a>';  
      if($page - 1 > 0) $pageback = '<a href="?mode='.$mode.'&id='.$id.'&page='. ($page - 1) .'">Назад</a> ';  
echo''.$pageback.' '.$nextpage.'';}
} else { echo'Комната не выбрана!'; }
break;
case 'del':
$id = abs($_GET['id']);
if($id == !NULL && $admin == 101){
mysql_query('DELETE FROM `chat_msg` WHERE `id` = "'.$id.'"');
header ('location: ?mode=index'); 
} else {echo'<div class="menu">Ошибочка!</div>'; }
break;
case 'edit':
echo'<div class="menu">';
$id = abs($_GET['id']);
$st = mysql_query("SELECT * FROM chat_msg WHERE `id`='".$id."';");
$st = mysql_fetch_assoc($st);
if($st['time'] >= time() && $st['login'] == $_COOKIE['login']){
echo'<form action="?mode=edit_ok&id='.$id.'" method="post">';
echo'<strong>Изменяем пост</strong><br />';
echo'<TEXTAREA NAME="msg" ROWS=4 COLS=40 input type="TEXTAREA" style="width: 95%; ">'.nosmiles($st['msg']).'</TEXTAREA>'; 
echo'<input type="submit" name="submit_1" id="submit"  value="Изменить">
</form>'; 
} else {
$u = mysql_query('SELECT * FROM users WHERE login = "'.$st['login'].'"');
$u = mysql_fetch_assoc($u);
if($st['status']=='user' && $admin == 102 || $admin == 103 || $admin == 104){
if($u['status'] == 101 || $u['status'] == 102 || $u['status'] == 103){ echo'Запрещено изменять сообщение Администраторов!'; } else {
echo'<strong>Изменяем пост</strong><br />';
echo'<TEXTAREA NAME="msg" ROWS=4 COLS=40 input type="TEXTAREA" style="width: 95%; ">'.nosmiles($st['msg']).'</TEXTAREA>'; 
echo'<input type="submit" name="submit_1" id="submit"  value="Изменить">
</form>';
}}
if($admin == 101){
echo'<strong>Изменяем пост</strong><br />';
echo'<TEXTAREA NAME="msg" ROWS=4 COLS=40 input type="TEXTAREA" style="width: 95%; ">'.nosmiles($st['msg']).'</TEXTAREA>'; 
echo'<input type="submit" name="submit_1" id="submit"  value="Изменить">
</form>';
}
if($admin == 105){echo'15 Минут уже прошло! Редактировать сообщение невозможно!';}
}
echo'</div>';
break;
case 'edit_ok':
echo'<div class="menu">';
$id = abs($_GET['id']);
$msg = check($_POST['msg']);
$st =mysql_query("SELECT * FROM chat_msg WHERE `id`='".$id."';");
$st = mysql_fetch_assoc($st);
if($st['time'] >= time() && $st['login'] == $_COOKIE['login']){
if (utf_strlen($msg) >= 5 && utf_strlen($msg) < 500) {
$msg = antimat($msg);
$msg = smiles($msg);
$msg = bb($msg);
$data = date("d.m.Y / H:i");
$text = ''.$msg.'<br /><small><font color=red>Изменено <strong>'.$_COOKIE['login'].'</strong> '.$data.'</font></small>';
mysql_query('UPDATE `chat_msg` SET `msg`="'.$text.'" WHERE `id` = "'.$id.'"');
header ('location: ?mode=index'); 
} else { echo'Ошибка! Слишком длинное или короткое сообщение!'; } } else {
$u = mysql_query('SELECT * FROM users WHERE login = "'.$st['login'].'"');
$u = mysql_fetch_assoc($u);
if($st['status']=='user' && $admin == 102 || $admin == 103 || $admin == 104){
if($u['status'] == 101 || $u['status'] == 102 || $u['status'] == 103){ echo'Запрещено изменять сообщение Администраторов!'; } else {
if (utf_strlen($msg) >= 5 && utf_strlen($msg) < 500) {
$msg = antimat($msg);
$msg = smiles($msg);
$msg = bb($msg);
$data = date("d.m.Y / H:i");
$text = ''.$message.'<br /><small><font color=red>Изменено <strong>'.$_COOKIE['login'].'</strong> '.$data.'</font></small>';
mysql_query('UPDATE `chat_msg` SET `msg`="'.$text.'" WHERE `id` = "'.$id.'"');
header ('location: ?mode=index'); 
} else { echo'Ошибка! Слишком длинное или короткое сообщение!'; } } }
if($admin == 101){
if (utf_strlen($msg) >= 5 && utf_strlen($msg) < 500) {
$msg = antimat($msg);
$msg = smiles($msg);
$msg = bb($msg);
$data = date("d.m.Y / H:i");
$text = ''.$message.'<br /><small><font color=red>Изменено <strong>'.$_COOKIE['login'].'</strong> '.$data.'</font></small>';
mysql_query('UPDATE `chat_msg` SET `msg`="'.$text.'" WHERE `id` = "'.$id.'"');
header ('location: ?mode=index'); 
} else { echo'Ошибка! Слишком длинное или короткое сообщение!'; }}
if($admin == 105){echo'15 Минут уже прошло! Редактировать сообщение невозможно!';}
}
echo'</div>';
break;
case 'set':
echo'<div class="menu">';
if(is_user()){
echo'
<form action="?mode=set" method="post">
Кол-во сообщений(10-30):<br />
<input name="st1" type="text" size="5" maxlength="2" value="'.$mes_on_site.'"/><br />
Обновление(0-90 сек):<br />
<input name="st2" type="text" size="5" maxlength="2" value="'.$reflesh.'"/><br />
<input name="" type="submit" value="Применить" />
</form>
';
$st1 = check(abs($_POST['st1']));
$st2 = check(abs($_POST['st2']));
if(!empty($st1) && !empty($st2)){
$_SESSION['chat_ref'] = $st2;
$_SESSION['chat_mes'] = $st1;
header ('location: ?mode=index'); 
}
} else {header ('location: ?mode=index'); }
echo'</div>';
break;
default: 
header ('location: ?mode=index'); 
endswitch;
if(is_user()){echo'<div class="menu"><a href="?mode=set">Настройки чата</a></div>';}
echo'<div class="menu"><a href="/">На главную</a></div>';
} else {echo '<div class="razdel">Доступ закрыт!</div>';
echo'<div class="menu">Доступ разрешен только зарегистированым!</div>';
}
include(BASEDIR.INC.'foot.php');
?>