- <?
- 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');
- ?>