Вход Регистрация
Файл: 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 0$page2left ' <a href= '.$links.''. ($page 2) .'>'. ($page 2) .'</a> | ';  
if(
$page 0$page1left '<a href= '.$links.''. ($page 1) .'>'. ($page 1) .'</a> | ';  
if(
$page <= $total$page2right ' | <a href= '.$links.''. ($page 2) .'>'. ($page 2) .'</a>';  
if(
$page <= $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) >= && 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) >= && 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 0$page2left ' <a href= '.$links.''. ($page 2) .'>'. ($page 2) .'</a> | ';  
if(
$page 0$page1left '<a href= '.$links.''. ($page 1) .'>'. ($page 1) .'</a> | ';  
if(
$page <= $total$page2right ' | <a href= '.$links.''. ($page 2) .'>'. ($page 2) .'</a>';  
if(
$page <= $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 0$page2left ' <a href= '.$links.''. ($page 2) .'>'. ($page 2) .'</a> | ';  
if(
$page 0$page1left '<a href= '.$links.''. ($page 1) .'>'. ($page 1) .'</a> | ';  
if(
$page <= $total$page2right ' | <a href= '.$links.''. ($page 2) .'>'. ($page 2) .'</a>';  
if(
$page <= $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) >= && 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) >= && 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) >= && 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
Реклама