Вход Регистрация
Файл: chat/index.php
Строк: 339
<?
include('../core/core.php');
include(
MAINDIR.'style/head.php');
title('Мини - Чат :)');
if(
is_user()){
include(
MAINDIR.'sys/session_chat.php');

$my = DB::run() -> queryFetch("SELECT * FROM `users` WHERE `login`=? LIMIT 1",array(check($_COOKIE['login'])));
$admin = $my['status'];
echo 
'<div class="title">Наш мини-чат!</div>';
$id = abs(intval($_GET['id']));
switch (
$mode):
case 
'index':
echo
'<div class="menu">';
echo
'Выберите комнату';
echo
'</div>';
echo
'<div class="menu_2">';
echo
'<a href="/games/vic.php">Викторина</a>';
echo
'</div>';
define('TOPAGE',10); $num = TOPAGE; 
$links = '?mode=index&page=';
$page = intval($_GET['page']);  

$posts = DB::run() -> query("SELECT * FROM `chat`") -> rowCount();

$total = intval(($posts - 1) / $num) + 1;  
if(empty(
$page) or $page < 0) $page = 1;  
if(
$page > $total) $page = $total;  
$start = $page * $num - $num;  

$themes = DB::run()->query("SELECT * FROM `chat` ORDER BY `id` DESC LIMIT $start,".TOPAGE."");
$themes = $themes -> fetchAll();
foreach(
$themes AS $u){
if(
$u['status'] == 'Admin' || $u['status'] == 'admin'){$img = '<img src="/images/personal_chat_admin.png">'; } else {$img = '<img src="/images/personal_chat_user.png">';}
echo
'<div class="menu">';
echo 
$img.' <a href="?mode=door&id='.$u['id'].'">'.$u['title'].'</a>';
echo
'</div>';


}
if (
$page != 1) $pervpage = '<a href= '.$links.'1><<</a> <a href= '.$links.''. ($page - 1) .'><</a> ';  

if (
$page != $total) $nextpage = ' <a href= '.$links.''. ($page + 1) .'>></a> <a href= '.$links.'' .$total. '>>></a>';  

if(
$page - 2 > 0) $page2left = ' <a href= '.$links.''. ($page - 2) .'>'. ($page - 2) .'</a> | ';  
if(
$page - 1 > 0) $page1left = '<a href= '.$links.''. ($page - 1) .'>'. ($page - 1) .'</a> | ';  
if(
$page + 2 <= $total) $page2right = ' | <a href= '.$links.''. ($page + 2) .'>'. ($page + 2) .'</a>';  
if(
$page + 1 <= $total) $page1right = ' | <a href= '.$links.''. ($page + 1) .'>'. ($page + 1) .'</a>'; 

if(
$posts == 0){ echo'<div class="menu">Комнаты еще не созданы!</div>'; } else {echo '<div class="menu_2">'.$pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage.'</div>';  }
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 (
mb_strlen($msg) >= 5 && mb_strlen($msg) < 500) {
$data = times();
$login = $my['login'];
$time = time() + (60 * 15);
$ip = preg_replace('|[^0-9.]|', '', check($_SERVER['REMOTE_ADDR']));
$arbuz = explode("/",$_SERVER['HTTP_USER_AGENT']);
$arbuz = check($arbuz[0]);
$msg = no_br($msg);
$msg = bb($msg);
$msg = antimat($msg);
$msg = smiles($msg);
$ck = DB::run() -> queryFetch("SELECT * FROM chat_msg WHERE `id_chat`=? ORDER BY `id` DESC LIMIT 1",array($id));
if(
$ck['msg'] == $msg){ echo'Ваше сообщение повторяет предыдущее!';} else {
DB::run()->query("INSERT INTO `chat_msg`(`id_chat`, `login`, `msg`, `data`, `arbuz`,`ip`, `time`) VALUES (?,?,?,?,?,?,?)",array($id,$login,$msg,$data,$arbuz,$ip,$time));
header('Location: ?mode=door&id='.$id.'');
$set = DB::run() -> queryFetch("SELECT * FROM setting WHERE `id`=?",array(1));

$_SESSION['antiflood'] = time() + $set['antiflood'];
user_live($my['login'],1,1,0);
} 
} else { echo
'Ошибка! Слишком длинное или короткое сообщение!'; }
}
} else {echo
'Ошибка!';}
echo
'</div>';
break;
case 
'otvet':
$id = abs($_GET['id']);
$chat = DB::run() -> queryFetch("SELECT * FROM chat_msg WHERE `id`=?",array($id));
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(intval($_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 (
mb_strlen($msg) >= 5 && mb_strlen($msg) < 500) {
$data = times();
$login = $my['login'];
$time = time() + (60 * 15);
$ip = preg_replace('|[^0-9.]|', '', check($_SERVER['REMOTE_ADDR']));
$arbuz = explode("/",$_SERVER['HTTP_USER_AGENT']);
$arbuz = check($arbuz[0]);
$msg = no_br($msg);
$msg = bb($msg);
$msg = antimat($msg);
$msg = smiles($msg);
$text = '<strong>'.$log.'</strong>, '.$msg.'';
$t = DB::run() -> queryFetch("select * from `chat_msg` where `id` =?",array($id_msg));
$l = $t['login'];
if(isset(
$_POST['ck2'])){$privat = $l;} else { $privat = NULL; }
DB::run()->query("INSERT INTO `chat_msg`(`id_chat`, `login`, `msg`, `data`, `arbuz`,`ip`, `time`, `privat`) VALUES (?,?,?,?,?,?,?,?)",array($id,$login,$text,$data,$arbuz,$ip,$time,$privat));
if(isset(
$_POST['ck1'])){
$i = check($_COOKIE['login']);
$data = times();
$msgz = 'Пользователь <a href="/profile/'.$i.'">'.$i.'</a> ответил на ваше сообщение в <a href="/chat/?mode=door&id='.$t['id_chat'].'">чате</a>!';
send_mail('System',$login,$msgz);
}
header('Location: ?mode=door&id='.$id.'');
$set = DB::run() -> queryFetch("SELECT * FROM setting WHERE `id`=?",array(1));

$_SESSION['antiflood'] = time() + $set['antiflood'];
user_live($my['login'],1,1,0);
} else { echo
'Ошибка! Слишком длинное или короткое сообщение!'; }
}
} else {echo
'Ошибка!';}
echo
'</div>';
break;
case 
'door':
if(
$my['chat'] == 0){} else {
?>
<div id="link"><? echo $my['chat'];  ?></div> 
<script> 
var link=document.getElementById('link'); 
var tmt=window.setInterval(function(){ 
--link.innerHTML||(window.clearInterval(tmt),  
link.innerHTML='<img src="/images/reload.gif"> Перезагружаю...'); 
}, 1000); 
</script>
<?
}
if(
$my['chat'] >= 1){ echo'<meta http-equiv="refresh" content="'.($my['chat'] + 3).';URL=http://'.SITE.'/chat/?mode='.$mode.'&id='.$id.'" />';}
if(
$my['mes_on_page'] < 10){define('TOPAGE','10');} else {define('TOPAGE',$my['mes_on_page']);}
$id = abs(intval($_GET['id']));

if(
$id == !NULL){
$chat = DB::run() -> queryFetch("SELECT * FROM chat WHERE id =? LIMIT 1",array($id));
echo
'<div class="menu"><a href="?mode='.$mode.'&id='.$id.'&page='.$page.'">Обновить</a></div>';
if(
$chat['status'] == 'Admin' || $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>';
$links = '?mode='.$mode.'&id='.id.'&page=';
$page = intval($_GET['page']);  

$posts = DB::run() -> query("SELECT * FROM `chat_msg` WHERE id_chat =?",array($id)) -> rowCount();

$total = intval(($posts - 1) / $num) + 1;  
if(empty(
$page) or $page < 0) $page = 1;  
if(
$page > $total) $page = $total;  
$start = $page * $num - $num;  

$themes = DB::run()->query("SELECT * FROM `chat_msg` WHERE id_chat =? ORDER BY `id` DESC LIMIT $start,".TOPAGE."",array($id));
$themes = $themes -> fetchAll();
foreach(
$themes AS $u){
# Определяем иконку
$query = DB::run() -> queryFetch("SELECT * FROM `users` WHERE `login`=?",array($u['login'])); 
# если он из админ состава
if($query['status'] == 101 || $query['status'] == 102 || $query['status'] == 103 || $query['status'] == 104){
# определяем его пол и выводим иконку 
if($query['pol'] == 1){$img = '<img src="/images/1.png">';}
if(
$query['pol'] == 0){$img = '<img src="/images/2.png">';}
}
# Если он обычный юзер
if($query['status'] == 105){
if(
$query['pol'] == 1){$img = '<img src="/images/4.png">';}
if(
$query['pol'] == 0){$img = '<img src="/images/3.png">';}
}

echo
'<div class="menu">'.$img.' <a href="/profile/'.$u['login'].'">'.$u['login'].'</a> '.online($u['login']).' ('.$u['data'].')</div>';
echo
'<div class="menu_2">';
if(
$u['privat'] == !NULL){
if(
check($_COOKIE['login']) == $u['privat'] || check($_COOKIE['login']) == $u['login']){echo''.$u['msg'].'';
 } else { echo
'Приватное сообщение, видит только адресат...'; }
 } else {
 echo
''.$u['msg'].'';
 } 
 echo
'<hr><div align="right">';
if(
$u['login'] != check($_COOKIE['login'])){echo'[<a href="?mode=otvet&id='.$u['id'].'">отв</a>]';}
if(
$admin == 101 || $u['time'] >= time() && $u['login'] == check($_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 (
$page != 1) $pervpage = '<a href= '.$links.'1><<</a> <a href= '.$links.''. ($page - 1) .'><</a> ';  

if (
$page != $total) $nextpage = ' <a href= '.$links.''. ($page + 1) .'>></a> <a href= '.$links.'' .$total. '>>></a>';  

if(
$page - 2 > 0) $page2left = ' <a href= '.$links.''. ($page - 2) .'>'. ($page - 2) .'</a> | ';  
if(
$page - 1 > 0) $page1left = '<a href= '.$links.''. ($page - 1) .'>'. ($page - 1) .'</a> | ';  
if(
$page + 2 <= $total) $page2right = ' | <a href= '.$links.''. ($page + 2) .'>'. ($page + 2) .'</a>';  
if(
$page + 1 <= $total) $page1right = ' | <a href= '.$links.''. ($page + 1) .'>'. ($page + 1) .'</a>'; 

if(
$posts == 0){ echo'<div class="menu">Пусто!</div>'; } else {echo '<div class="menu_2">'.$pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage.'</div>';  }
} 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>';
$links = '?mode='.$mode.'&id='.id.'&page=';
$page = intval($_GET['page']);  

$posts = DB::run() -> query("SELECT * FROM `chat_msg` WHERE id_chat =?",array($id)) -> rowCount();

$total = intval(($posts - 1) / $num) + 1;  
if(empty(
$page) or $page < 0) $page = 1;  
if(
$page > $total) $page = $total;  
$start = $page * $num - $num;  

$themes = DB::run()->query("SELECT * FROM `chat_msg` WHERE id_chat =? ORDER BY `id` DESC LIMIT $start,".TOPAGE."",array($id));
$themes = $themes -> fetchAll();
foreach(
$themes AS $u){
# Определяем иконку
$query = DB::run() -> queryFetch("SELECT * FROM `users` WHERE `login`=?",array($u['login'])); 
# если он из админ состава
if($query['status'] == 101 || $query['status'] == 102 || $query['status'] == 103 || $query['status'] == 104){
# определяем его пол и выводим иконку 
if($query['pol'] == 1){$img = '<img src="/images/1.png">';}
if(
$query['pol'] == 0){$img = '<img src="/images/2.png">';}
}
# Если он обычный юзер
if($query['status'] == 105){
if(
$query['pol'] == 1){$img = '<img src="/images/4.png">';}
if(
$query['pol'] == 0){$img = '<img src="/images/3.png">';}
}

echo
'<div class="menu">'.$img.' <a href="/profile/'.$u['login'].'">'.$u['login'].'</a> '.online($u['login']).' ('.$u['data'].')</div>';
echo
'<div class="menu_2">';
if(
check($_COOKIE['login']) == $u['privat'] || check($_COOKIE['login']) == $u['login']){
if(
$u['privat'] == !NULL){
echo
''.$u['msg'].'';
 } else { echo
'Приватное сообщение, видит только адресат...'; }
 } else {
 echo
''.$u['msg'].'';
 } 
 echo
'<hr><div align="right">';
if(
$u['login'] != check($_COOKIE['login'])){echo'[<a href="?mode=otvet&id='.$u['id'].'">отв</a>]';}
if(
$admin == 101 || $u['time'] >= time() && $u['login'] == check($_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 (
$page != 1) $pervpage = '<a href= '.$links.'1><<</a> <a href= '.$links.''. ($page - 1) .'><</a> ';  

if (
$page != $total) $nextpage = ' <a href= '.$links.''. ($page + 1) .'>></a> <a href= '.$links.'' .$total. '>>></a>';  

if(
$page - 2 > 0) $page2left = ' <a href= '.$links.''. ($page - 2) .'>'. ($page - 2) .'</a> | ';  
if(
$page - 1 > 0) $page1left = '<a href= '.$links.''. ($page - 1) .'>'. ($page - 1) .'</a> | ';  
if(
$page + 2 <= $total) $page2right = ' | <a href= '.$links.''. ($page + 2) .'>'. ($page + 2) .'</a>';  
if(
$page + 1 <= $total) $page1right = ' | <a href= '.$links.''. ($page + 1) .'>'. ($page + 1) .'</a>'; 

if(
$posts == 0){ echo'<div class="menu">Пусто!</div>'; } else {echo '<div class="menu_2">'.$pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage.'</div>';  }}
} else { echo
'Комната не выбрана!'; }
break;
case 
'del':
$id = abs($_GET['id']);
if(
$id == !NULL && $admin == 101){
DB::run()->query("DELETE FROM `chat_msg` WHERE `id` =?",array($id));
header ('location: '.$_SERVER['HTTP_REFERER'].''); 
} else {echo
'<div class="menu">Ошибочка!</div>'; }
break;
case 
'edit':
echo
'<div class="menu">';
$id = abs($_GET['id']);
$st = DB::run() -> queryFetch("SELECT * FROM chat_msg WHERE `id`=? LIMIT 1",array($id));

if(
$st['time'] >= time() && $st['login'] == check($_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 = DB::run() -> queryFetch("SELECT * FROM users WHERE login =? LIMIT 1",array($st['login']));

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 = DB::run() -> queryFetch("SELECT * FROM chat_msg WHERE `id`=? LIMIT 1",array($id));
if(
$st['time'] >= time() && $st['login'] == check($_COOKIE['login'])){
if (
mb_strlen($msg) >= 5 && mb_strlen($msg) < 500) {
$msg = no_br($msg);
$msg = bb($msg);
$msg = antimat($msg);
$msg = smiles($msg);
$data = times();
$text = ''.$msg.'<br /><small><font color=red>Изменено <strong>'.check($_COOKIE['login']).'</strong> '.$data.'</font></small>';
DB::run()->query("UPDATE `chat_msg` SET `msg`=? WHERE `id` =?",array($text,$id));
header ('location: ?mode=index'); 
} else { echo
'Ошибка! Слишком длинное или короткое сообщение!'; } } else {
$u = DB::run() -> queryFetch("SELECT * FROM users WHERE login =? LIMIT 1",array($st['login']));

if(
$st['status']=='user' && $admin == 102 || $admin == 103 || $admin == 104){
if(
$u['status'] == 101 || $u['status'] == 102 || $u['status'] == 103){ echo'Запрещено изменять сообщение Администраторов!'; } else {
if (
mb_strlen($msg) >= 5 && mb_strlen($msg) < 500) {
$msg = no_br($msg);
$msg = bb($msg);
$msg = antimat($msg);
$msg = smiles($msg);
$data = times();
$text = ''.$message.'<br /><small><font color=red>Изменено <strong>'.check($_COOKIE['login']).'</strong> '.$data.'</font></small>';
DB::run()->query("UPDATE `chat_msg` SET `msg`=? WHERE `id` =?",array($text,$id));
header ('location: ?mode=index'); 
} else { echo
'Ошибка! Слишком длинное или короткое сообщение!'; } } }
if(
$admin == 101){
if (
mb_strlen($msg) >= 5 && mb_strlen($msg) < 500) {
$msg = no_br($msg);
$msg = bb($msg);
$msg = antimat($msg);
$msg = smiles($msg);
$data = times();
$text = ''.$message.'<br /><small><font color=red>Изменено <strong>'.check($_COOKIE['login']).'</strong> '.$data.'</font></small>';
DB::run()->query("UPDATE `chat_msg` SET `msg`=? WHERE `id` =?",array($text,$id));
header ('location: ?mode=index'); 
} else { echo
'Ошибка! Слишком длинное или короткое сообщение!'; }}
if(
$admin == 105){echo'15 Минут уже прошло! Редактировать сообщение невозможно!';}
}
echo
'</div>';
break;
default: 
header ('location: ?mode=index'); 
endswitch;
if(
is_user()){echo'<div class="menu"><a href="/users/setting.php?mode=index">Настройки чата</a></div>';}
} else {
title('Ошибка!');
echo
'<div class="title">Ошибка!</div>';
echo
'<div class="error">';
echo
'Доступ разрешен только авторизованым!';
echo
'</div>';
}
include(
MAINDIR.'style/foot.php');
?>
Онлайн: 2
Реклама