Файл: profiwm.pp.ua/chat/index.php
Строк: 145
<?php
require '../system/sid.php';
require '../system/config.php';
include '../system/user.php';
include '../system/head.php';
include '../system/navigator.php';
$open = mysql_fetch_array(mysql_query("SELECT `open_chat` FROM `setting` WHERE `ids` = '1'"));
if ($open[0] == 2)
{
err('Чат закрыт Администратором!');
include '../system/foot.php';
exit();
}
$_SESSION['NameRoom'] = 'chat';
whorm(0, 'chat'); // Запись онлайна
// заголовок (назв комнаты)
echo $div_title . 'Мини-чат' . $div_end;
$topic = ($user['level'] >= 3 && $user['level'] <= 5) ? ' | <a href="?clean">Очистить</a>' : '';
$ASnum = mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE `room` = 'chat' AND `onl` + '300' > '" . time() . "' ORDER BY `onl` DESC"));
echo $div_menu . '<a href="say.php">Сказать</a> | <a href="whoroom.php">Кто здесь(' . $ASnum . ')</a> | <a href="index.php">Обновить</a>' . $topic . $div_end;
// выключение/выключение фильтра
if (isset($_GET['filtr'])) {
if ($user['chat_filtr'] == 1)
{
echo $div_tworazdel . 'Фильтр: <b>Выкл</b> |
<a href="index.php?f=2">Мои [!п]</a> |
<a href="index.php?f=3">Мои все</a>' . $div_end;
}
elseif ($user['chat_filtr'] == 2)
{
echo $div_tworazdel . 'Фильтр: <a href="index.php?f=1">Выкл</a> |
<b>Мои [!п]</b> |
<a href="index.php?f=3">Мои все</a>' . $div_end;
}
elseif ($user['chat_filtr'] == 3)
{
echo $div_tworazdel . 'Фильтр: <a href="index.php?f=1">Выкл</a> |
<a href="index.php?f=2">Мои [!п]</a> |
<b>Мои все</b>' . $div_end;
}
else
{
echo $div_tworazdel . 'Фильтр: <b>Выкл</b> |
<a href="index.php?f=2">Мои [!п]</a> |
<a href="index.php?f=3">Мои все</a>' . $div_end;
}
} else {
echo '<a href="index.php?filtr">[Фильтр]</a>';
}
// Ответ бота пользователю
if (!isset($_SESSION['terpilaInt'])) $_SESSION['terpilaInt'] = 0;
if ($_SESSION['terpilaInt'] != 0 && $_SESSION['terpilaInt'] < time())
{
mysql_query($_SESSION['terpilaMsg']);
unset($_SESSION['terpilaInt']);
unset($_SESSION['terpilaMsg']);
header('Location: index.php');
}
if (isset($_GET['f']))
{
$f = my_int($_GET['f']);
if ($f < 1 && $f > 3) {
header('Location: index.php');
} else {
mysql_query("UPDATE `users` SET `chat_filtr` = '$f' WHERE `id` = '$user[id]' LIMIT 1");
header('Location: index.php');
}
}
echo '<FORM method="POST" action="index.php">
<textarea name="msg" cols="50" rows="5" style="width: 99%;"></textarea>
<br/>';
if ($user['level'] == 3 || $user['level'] == 4 || $user['level'] == 5) {
echo '<input type="checkbox" name="b" value="1"/> <b>Жирный</b>
<br/>
<input type="checkbox" name="u" value="1"/> <u>Подчеркнутый</u>
<br/>
<input type="checkbox" name="r" value="1"/> <span style="color:#FF0000;">Красный</span>
<br/>';
}
echo '<input type="submit" name="send" value="Сказать"/>
</FORM>' . $block;
// действия
echo (isset($_GET['flood'])) ? err('Антифлуд 10сек.') : '';
echo (isset($_GET['empty'])) ? err('Ваши сообщения повторяются!') : '';
echo (isset($_GET['okdel'])) ? msg('Пост удален!') : '';
echo (isset($_GET['errdel'])) ? err('Пост не удален!') : '';
echo (isset($_GET['clroom'])) ? msg('Чат очищен!') : '';
// очистка комнаты
if (isset($_GET['clean']) && $user['level'] >= 3 && $user['level'] <= 5)
{
mysql_query("DELETE FROM `message`");
header('Location: index.php');
}
// запись поста в бд
if (isset($_POST['send']))
{
$msg = trim(mysql_real_escape_string(check($_POST['msg'])));
// Антифлуд
if (!isset($_SESSION['flood_time'])) $_SESSION['flood_time'] = 0;
if ($_SESSION['flood_time'] > time())
{
$mess = mysql_result(mysql_query("SELECT COUNT(id) FROM `message` WHERE
`who` = '$user[id]'
AND
`time` < '" . $_SESSION['flood_time'] . "'"), 0);
if ($mess > 0) {
header('Location: ?flood');
die();
}
}
$_SESSION['flood_time'] = time() + 10; // Время интервала антифлуда
// Повтор сообщений
$NumDouble = mysql_result(mysql_query("SELECT COUNT(id) FROM `message` WHERE
`who` = '$user[id]'
AND
`msg` = '$msg'
AND
`time` > '" . (time() - 60) . "' LIMIT 1"), 0);
if ($NumDouble > 0)
{
header('Location: ?empty');
die();
}
if (isset($_POST['boteg']))
{
$msg = 'Мажор, ' . $msg;
$_POST['komu'] = 0;
}
// если пишут флудеру
if (isset($_POST['komu']) && my_int($_POST['komu']) == 0)
{
include 'pizdun.php';
$msg_1 = bot($msg);
$msg_2 = $user['user'] . ', ' . $msg_1;
$ids = mt_rand(100000, 999999);
$Priv = (my_int($_POST['private']) == 1) ? "`private` = '1'," : "`private` = '0',";
$_SESSION['terpilaMsg'] = "INSERT INTO `message` SET
`id` = '$ids',
`time` = '" . (time() + 1) . "',
`who` = '0',
`user` = 'Мажор',
$Priv
`msg` = '$msg_2',
`komu` = '$user[id]'";
$_SESSION['terpilaInt'] = time() + mt_rand(2, 5); // через сколько сек. отвечать пользователю
header('Location: index.php');
}
// Написание сообщения
if (!empty($msg))
{
$ids = mt_rand(100000, 999999);
// Антиреклама
$_ant = mysql_fetch_assoc(mysql_query("SELECT `on_rekl`, `text_rekl` FROM `setting` WHERE `ids` = '1'"));
if ($_ant['on_rekl'] == 1 && filesize($_SERVER['DOCUMENT_ROOT'] . '/domains.dat') > 0) {
$ex = explode(',', file_get_contents('../domains.dat'));
foreach($ex as $value) {
if ($user['level'] < 3) {
$msg = preg_replace("/(ws|,|.|*|_|-|+)+$value/si", $_ant['text_rekl'], $msg);
}
}
}
// транслит
if ($user['translit'] == 1) {
$msg = trun_to_rus($msg);
}
// антимат
$ant = mysql_fetch_array(mysql_query("SELECT `antimat` FROM `setting` WHERE `ids` = '1'"));
$msg = ($ant[0] == 1) ? mat($msg) : $msg;
if ($user['level'] == 3 || $user['level'] == 4 || $user['level'] == 5) {
$b = my_int($_POST['b']);
$u = my_int($_POST['u']);
$r = my_int($_POST['r']);
if ($b == 1) $msg = '<b>' . $msg . '</b>';
if ($u == 1) $msg = '<u>' . $msg . '</u>';
if ($r == 1) $msg = '<span style="color:#FF0000;">' . $msg . '</span>';
}
// оповещание об оставленном сообщении
$komu = my_int($_POST['komu']);
if (user_inf($komu, 'room') != 'chat' && $user['id'] != $komu && user_inf($komu, 'sistem_mes') == 1)
{
$cont = (mb_strlen($msg, 'UTF8') > 50)
? mb_substr($msg, 0, 50, 'UTF8') . '...'
: $msg;
$q = $user['user'] . ' оставил вам сообщение <b>' . $cont . '</b> в <a href="/chat/index.php">чате</a>.';
mysql_query("INSERT INTO `letters` (`id`,`who`,`idwho`,`message`,`data`,`read`,`mod`)
VALUES (0,'0','$komu','$q','" . time() . "','0','i')");
header('Location: index.php');
}
mysql_query("INSERT INTO `message` SET
`id` = '$ids',
`time` = '" . time() . "',
`msg` = '$msg',
`who` = '$user[id]',
`user` = '$user[user]',
`private` = '" . my_int($_POST['private']) . "',
`komu` = '" . my_int($_POST['komu']) . "'");
header('Location: index.php');
}
}
/*
// если молча сидят в комнате
$mytime = mysql_query("SELECT id FROM message WHERE who = '$user[id]' AND time + '60' > '" . time() . "' OR who = '0' AND komu = '$user[id]' AND time + '60' > '" . time() . "' ORDER BY time ASC LIMIT 1");
if ($ASnum == 1 && mysql_num_rows($mytime) == false)
{
$RaNdArR = array('ну и что ты тут молча сидишь?', 'может пообщаемся?', 'мент родился чтоли?', 'эй ты не молчи, пиши че нибудь мне.');
$rand = mt_rand(0, count($RaNdArR) - 1);
$mes = $user['user'] . ', ' . $RaNdArR[$rand];
$ids = mt_rand(100000, 999999);
mysql_query("INSERT INTO `message` SET
`id` = '$ids',
`who` = '0',
`user` = 'Мажор',
`msg` = '$mes',
`komu` = '$user[id]',
`time` = '" . time() . "'");
}
*/
// удаление поста
if (isset($_GET['delete'])) {
if ($user['level'] < 2) {
header('Location: index.php');
die();
}
$x = my_int($_GET['x']);
$em = mysql_query("SELECT id FROM `message` WHERE `id` = '$x' LIMIT 1");
if (mysql_num_rows($em) != FALSE) {
mysql_query("DELETE FROM `message` WHERE `id` = '$x' LIMIT 1");
header('Location: ?okdel');
} else {
header('Location: ?errdel');
}
}
// фильтр сообщений
if ($user['chat_filtr'] == 1) $FiltrMes = '';
if ($user['chat_filtr'] == 2) $FiltrMes = "`private` = '1' AND `komu` = '$user[id]' OR `private` = '1' AND `who` = '$user[id]' AND";
if ($user['chat_filtr'] == 3) $FiltrMes = "`komu` = '$user[id]' OR `who` = '$user[id]' AND";
$count = mysql_result(mysql_query("SELECT COUNT(id) FROM `message` WHERE $FiltrMes `who` NOT IN (SELECT `ig_id` FROM `ignor` WHERE `user_id` = '$user[id]')"), 0);
if ($count != false) {
$n = new navigator($count, $user['room_post'], 'index.php?');
$result = mysql_query("SELECT * FROM `message` WHERE $FiltrMes `who` NOT IN (SELECT `ig_id` FROM `ignor` WHERE `user_id` = '$user[id]') ORDER BY `time` DESC {$n->limit}");
$i = 0;
while($sql = mysql_fetch_assoc($result)) {
// Если в сообщении мой ник, выделяем его
$sql['msg'] = str_replace($user['user'], '<u>' . $user['user'] . '</u>', $sql['msg']);
echo ($user['refresh'] != 0 ? header('Refresh: ' . $user['refresh'] . '; URL=index.php') : '');
// Распределение ников...
if ($sql['who'] == 0 && $sql['user'] == 'Мажор') {
$kto_id = '<a href="chat0"><b>Мажор</b></a>';
} else {
$kto_id = '<a href="chat'.$sql['who'].'&'.mt_rand(1000, 9999).'"><b>' . cvetnik($sql['who']) . '</b></a>';
}
$delpost = ($user['level'] >= 2 && $user['level'] <= 5) ? '[<a href="index.php?delete&x='.$sql['id'].'">x</a>] ' : '';
// Если пишут не в приват
if ($sql['private'] == 0)
{
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo $delpost . $kto_id . ' (' . date('H:i', $sql['time']) . ') > ' . smiles($sql['msg']) . $div_end;
// Если пишут в приват (+ видно Администраторам)
} elseif ($user['level'] == 5 || $sql['private'] == 1 && $sql['komu'] == $user['id'] || $sql['private'] == 1 && $sql['who'] == $user['id']) {
echo ($i ++ % 2) ? $div_tworazdel : $div_razdel;
echo $delpost . $kto_id . ' (' . date('H:i', $sql['time']) . ') <b style="color:#FF3300;">[!п]</b>> ' . smiles($sql['msg']) . $div_end;
}
}
echo $n->navi();
} else {
echo 'В чате еще никто не писал.<br/>';
}
include '../system/foot.php';
?>