Файл: mob-lave.ru/moduls/chat/index.php
Строк: 89
<?php
require_once '../../core/set.php';
$set['title'] = 'Общий чат';
require_once H.'core/head.php';
require_once H.'core/panel.php';
echo '<div class="navig">'.$home. $z. $set['title'].'</div>';
switch($_GET['act']){
// ------------ Ответ ----------- //
case 'msg_otv':
if(isset($_GET['id']) && isset($_POST['msg'])){
$array = mysql_fetch_assoc(mysql_query("SELECT `id` FROM `$system[perfix]_chat` ORDER BY `id` DESC"));
if($_GET['id'] > 0 && $array['id'] >= $_GET['id']){
$id = num($_GET['id']);
$otvet = check($_POST['msg']);
$chat = mysql_fetch_assoc(mysql_query("SELECT `id_user` FROM `$system[perfix]_chat` WHERE `id` = '$id'"));
$avtor = mysql_fetch_assoc(mysql_query("SELECT `id`,`login` FROM `$system[perfix]_users` WHERE `id` = '$chat[id_user]'"));
$flood = mysql_fetch_assoc(mysql_query("SELECT `post` FROM `$system[perfix]_chat` WHERE `id_user` = '$user[id]' ORDER BY `id` DESC LIMIT 1"));
if($otvet == $flood['post']) $err = 'Ваше сообщение повторяет предыдущее';
if (strlen($otvet) < 3 or strlen($otvet) > 50000) $err = 'Сообщение должено быть в пределах 3 - 50 000 символов';
if($user['id'] != $avtor['id']){
if(!isset($err)){
mysql_query("INSERT INTO `$system[perfix]_jurnal` (`id_user`, `id_ank`, `msg`, `time`, `read`, `link`, `razdel`) values('$avtor[id]', '$user[id]', '$otvet', '$time', '0', '/moduls/chat/', 'Чат')");
mysql_query("INSERT INTO `$system[perfix]_chat` SET `post` = '$otvet', `time` = '$time', `id_user` = '$user[id]',`otv_user` = '$avtor[id]'");
$post_chat = mysql_fetch_assoc(mysql_query("SELECT `id_user` FROM `$system[perfix]_user_ank` WHERE `id_user` = '$user[id]'"));
mysql_query("UPDATE `$system[perfix]_user_ank` SET `count_post_chat` = '".($post_chat['count_post_chat']+1)."' WHERE `id_user` = '$user[id]' LIMIT 1"); // Статистика
$_SESSION['message'] = 'Сообщение успешно отправлено';
header("Location: /moduls/chat/");
exit();
}else{
$_SESSION['err'] = 'Сообщение не отправлено';
header('Location: /moduls/chat/');
exit();
}
}else{
$_SESSION['err'] = 'Нельзя отвечать себе';
header('Location: /moduls/chat/');
exit();
}
}else{
$_SESSION['err'] = 'Сообщение не отправлено';
header('Location: /moduls/chat/');
exit();
}
}
break;
case 'otvet':
if(isset($_GET['id'])){
$array = mysql_fetch_assoc(mysql_query("SELECT `id` FROM `$system[perfix]_chat` ORDER BY `id` DESC"));
if($_GET['id'] > 0 && $array['id'] >= $_GET['id']){
$id = num($_GET['id']);
$chat = mysql_fetch_assoc(mysql_query("SELECT `id_user` FROM `$system[perfix]_chat` WHERE `id` = '$id'"));
$avtor = mysql_fetch_assoc(mysql_query("SELECT `id`,`login` FROM `$system[perfix]_users` WHERE `id` = '$chat[id_user]'"));
$cit = mysql_fetch_assoc(mysql_query("SELECT * FROM `$system[perfix]_chat` WHERE `id` = '$id'"));
if($user['id'] != $avtor['id']){
echo '<form method="post" action="/moduls/chat/?act=msg_otv&id='.$id.'">';
echo 'Ответ на сообщение ';
echo online($avtor['id']);
echo '<a href="/?login='.$avtor['login'].'">'.$avtor['login'].'</a><br/ >';
echo text($cit['post']);
echo '<textarea name="msg"></textarea><br />
<input type="submit" value="Ответить"> <a href="/moduls/chat/">Отмена</a>
</form>';
}else{
$_SESSION['err'] = 'Нельзя отвечать себе';
header('Location: /moduls/chat/');
exit();
}
}else{
$_SESSION['err'] = 'Сообщение не отправлено';
header('Location: /moduls/chat/');
exit();
}
}else{
$_SESSION['err'] = 'Сообщение не отправлено';
header('Location: /moduls/chat/');
exit();
}
break;
// ------------ Запись ----------- //
case 'msg':
if(isset($_POST['msg'])){
$msg = check($_POST['msg']);
$flood = mysql_fetch_assoc(mysql_query("SELECT `post` FROM `$system[perfix]_chat` WHERE `id_user` = '$user[id]' ORDER BY `id` DESC LIMIT 1"));
if($msg == $flood['post']) $err = 'Ваше сообщение повторяет предыдущее';
if (strlen($msg) < 3 or strlen($msg) > 50000) $err = 'Сообщение должено быть в пределах 3 - 50 000 символов';
if(!isset($err)){
mysql_query("INSERT INTO `$system[perfix]_chat` (`post`, `time`, `id_user`) values('$msg', '$time', '$user[id]')");
$post_chat = mysql_fetch_assoc(mysql_query("SELECT `count_post_chat` FROM `$system[perfix]_user_ank` WHERE `id_user` = '$user[id]'"));
mysql_query("UPDATE `$system[perfix]_user_ank` SET `count_post_chat` = '".($post_chat['count_post_chat']+1)."' WHERE `id_user` = '$user[id]' LIMIT 1"); // Статистика
$_SESSION['message'] = 'Сообщение успешно добавлено';
header('Location: /moduls/chat/');
exit();
}else{
$_SESSION['err'] = $err;
header('Location: /moduls/chat/');
exit();
}
}else{
$_SESSION['err'] = 'Сообщение не добавлено';
header('Location: /moduls/chat/');
exit();
}
break;
// ----------- Удалить все ------------ //
case 'delete_all':
if(user_access('chat_del_all_komm') && isset($_GET['da'])){
mysql_query("TRUNCATE `$system[perfix]_chat`");
$_SESSION['message'] = 'Чат очищен';
header('Location: /moduls/chat/');
exit();
}else{
$_SESSION['err'] = 'Нет прав на очистку чата';
header("Location: /moduls/chat/");
exit();
}
break;
case 'del_all':
if(user_access('chat_del_all_komm')){
echo '<div class="mess">Вы действительно хотите удалить все сообщения из чата?<br />
<div id="dark" class="icon-checkmark"></div> <a href="/moduls/chat/?act=delete_all&da">Да</a> | <div id="dark" class="icon-undo2 "></div> <a href="/moduls/chat/">Нет</a></div>';
}else{
$_SESSION['err'] = 'Нет прав на очистку чата';
header("Location: /moduls/chat/");
exit();
}
break;
// --------------- Удаление ------------- //
case 'del':
if(user_access('chat_del_komm')){
if(isset($_GET['id'])) $id = num($_GET['id']);
mysql_query("DELETE FROM `$system[perfix]_chat` WHERE `id` = '$id'");
header("Location: /moduls/chat/");
$_SESSION['message'] = 'Сообщение успешно удалено';
exit();
}else{
$_SESSION['err'] = 'Нет прав на удаление комментариев';
header("Location: /moduls/chat/");
exit();
}
break;
default:
if(isset($user['id'])){
echo '<form method="post" action="index.php?act=msg">';
panel_bb('textarea');
echo '<textarea id="textarea" name="msg"></textarea><br>
<input type="submit" value="Написать"> '.$Panel.' <a href = "/moduls/chat/?refresh='.rand(1,9999).'"><span style="float:right"><div id="dark" class="icon-spinner2"></div></span></a>
</form>';
}
$k_post = mysql_result(mysql_query("SELECT COUNT(*) FROM `$system[perfix]_chat`"),0);
$k_page = k_page($k_post,$set['p_str']);
$page = page($k_page);
$start = $set['p_str']*$page-$set['p_str'];
if ($k_post == 0) echo '<div class="menu">Сообщений нет</div>';
$q = mysql_query("SELECT * FROM `$system[perfix]_chat` ORDER BY `id` DESC LIMIT $start, $set[p_str]");
while($chat = mysql_fetch_assoc($q)){
$avtor = mysql_fetch_assoc(mysql_query("SELECT `id`,`login` FROM `$system[perfix]_users` WHERE `id` = '".num($chat[id_user])."'"));
echo '<div class="mess">';
echo online($avtor['id']).' <a href="/?login='.$avtor['login'].'"><u>'.login($avtor['login']).'</font></u></a>';
if($chat['otv_user'] != 0){
$otvet = mysql_fetch_assoc(mysql_query("SELECT `id`,`login` FROM `$system[perfix]_users` WHERE `id` = '".num($chat['otv_user'])."'"));
echo ' Ответил <a href="/?login='.$otvet['login'].'">'.$otvet['login'].'</a>';
}
echo ' ('.vremja($chat['time']).')<br />'.text($chat['post']);
if($user['id'] != $avtor['id'] && isset($user['id'])) echo '<br /> <div style="float:left"><a href="/moduls/chat/?act=otvet&id='.$chat['id'].'">Ответ</a></div>';
if(isset($user['id']) && user_access('chat_del_komm')) echo '<div style="float:right"> <a href="/moduls/chat/?act=del&id='.num($chat['id']).'"><div id="dark" class="icon-cancel"></div></a></div>';
echo '<div style="clear:both"></div>';
echo '</div>';
}
mysql_query("OPTIMIZE TABLE `$system[perfix]_chat`");
if ($k_page>1)str('index.php?',$k_page,$page); // Вывод страниц
if(user_access('chat_del_all_komm')) echo '<div class="navig"><a href="/moduls/chat/?act=del_all"><div id="dark" class="icon-cancel"></div> Очистить чат</a></div>';
}
echo '<div class="navig">'.$home. $z. $set['title'].'</div>';
require_once H.'core/foot.php';
?>