<?php
/*
////////////////////////////////////////////////////////////////////////////////
// JohnCMS Content Management System //
// Официальный сайт сайт проекта: http://johncms.com //
// Дополнительный сайт поддержки: http://gazenwagen.com //
////////////////////////////////////////////////////////////////////////////////
// JohnCMS core team: //
// Евгений Рябинин aka john77 john77@gazenwagen.com //
// Олег Касьянов aka AlkatraZ alkatraz@gazenwagen.com //
// //
// Информацию о версиях смотрите в прилагаемом файле version.txt //
////////////////////////////////////////////////////////////////////////////////
*/
define('_IN_JOHNCMS', 1);
$textl = 'Чат';
$headmod = 'chat';
require_once ("../incfiles/core.php");
// Ограничиваем доступ к Чату
$error = '';
if (!$set['mod_chat'] && !$rights < 7)
$error = 'Чат закрыт';
elseif ($ban['1'] || $ban['12'])
$error = 'Для Вас доступ в Чат закрыт';
elseif (!$user_id)
$error = 'Доступ в Чат открыт только <a href="../login.php">авторизованным</a> посетителям';
if ($error) {
require_once ("../incfiles/head.php");
echo '<div class="rmenu"><p>' . $error . '</p></div>';
require_once ("../incfiles/end.php");
exit;
}
////////////////////////////////////////////////////////////
// Настройки Чата //
////////////////////////////////////////////////////////////
$set_chat = array();
$set_chat = unserialize($datauser['set_chat']);
if (empty ($set_chat)) {
$set_chat['refresh'] = 20;
$set_chat['chmes'] = 10;
$set_chat['carea'] = 0;
$set_chat['carea_w'] = 20;
$set_chat['carea_h'] = 2;
$set_chat['mood'] = 'нейтральное';
}
// Фиксируем местонахождение пользователя
$where = !empty ($id) ? 'chat,' . $id : 'chat';
mysql_query("INSERT INTO `count` SET
`ip`='" . $ipp . "',
`browser`='" . mysql_real_escape_string($agn) . "',
`time`='" . $realtime . "',
`where`='" . $where . "',
`name`='" . $login . "';");
switch ($act) {
case "room" :
////////////////////////////////////////////////////////////
// Очищаем комнату //
////////////////////////////////////////////////////////////
if (($rights == 2 || $rights >= 6) && $id) {
$typ = mysql_query("SELECT * FROM `chat` WHERE `id` = '" . $id . "' LIMIT 1");
$ms = mysql_fetch_array($typ);
if ($ms['type'] != "r") {
require_once ("../incfiles/head.php");
echo "Ошибка!<br/><a href='index.php?'>В чат</a><br/>";
require_once ("../incfiles/end.php");
exit;
}
if (isset ($_GET['yes'])) {
mysql_query("DELETE FROM `chat` WHERE `refid` = '" . $id . "'");
header("Location: $home/chat/index.php?id=$id");
}
else {
require_once ("../incfiles/head.php");
echo '<p>Вы действительно хотите очистить комнату?<br/><a href="index.php?act=room&id=' . $id . '&yes">Да</a> | <a href="index.php?id=' . $id . '">Нет</a></p>';
}
}
require_once ("../incfiles/end.php");
break;
case "moders" :
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
require_once ("../incfiles/head.php");
echo "<b>Модераторы чата</b><br/>";
$mod = mysql_query("select * from `users` where rights='2';");
$mod2 = mysql_num_rows($mod);
if ($mod2 != 0) {
while ($mod1 = mysql_fetch_array($mod)) {
if ($login != $mod1['name']) {
echo "<a href='../str/anketa.php?id=" . $mod1['id'] . "'><font color='" . $conik . "'>$mod1[name]</font></a>";
}
else {
echo "<font color='" . $csnik . "'>$mod1[name]</font>";
}
$ontime = $mod1['lastdate'];
$ontime2 = $ontime + 300;
if ($realtime > $ontime2) {
echo '<font color="#FF0000"> [Off]</font>';
}
else {
echo '<font color="#00AA00"> [ON]</font>';
}
}
}
else {
echo "Не назначены<br/>";
}
echo "<a href='index.php?id=" . $id . "'>Назад</a><br/>";
require_once ("../incfiles/end.php");
break;
case "trans" :
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
require_once ("../incfiles/head.php");
include ("../pages/trans.$ras_pages");
echo '<br/><br/><a href="' . htmlspecialchars(getenv("HTTP_REFERER")) . '">Назад</a><br/>';
require_once ("../incfiles/end.php");
break;
case "say" :
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
if (empty ($id)) {
require_once ("../incfiles/head.php");
echo "Ошибка!<br/><a href='?'>В чат</a><br/>";
require_once ("../incfiles/end.php");
exit;
}
// Проверка на спам
$old = ($rights) ? 5 : 10;
if ($datauser['lastpost'] > ($realtime - $old)) {
require_once ("../incfiles/head.php");
echo '<p><b>Антифлуд!</b><br />Вы не можете так часто писать<br/>Порог ' . $old . ' секунд<br/><br/><a href="index.php?id=' . $id . '">Назад</a></p>';
require_once ("../incfiles/end.php");
exit;
}
$type = mysql_query("SELECT * FROM `chat` WHERE `id` = '" . $id . "' LIMIT 1");
$type1 = mysql_fetch_array($type);
$tip = $type1['type'];
switch ($tip) {
case "r" :
if (isset ($_POST['submit'])) {
if (empty ($_POST['msg'])) {
require_once ("../incfiles/head.php");
echo "Вы не ввели сообщение!<br/><a href='index.php?act=say&id=" . $id . "'>Повторить</a><br/>";
require_once ("../incfiles/end.php");
exit;
}
// Принимаем сообщение и записываем в базу
$msg = check(trim($_POST['msg']));
$msg = mb_substr($msg, 0, 500);
if ($_POST['msgtrans'] == 1) {
$msg = trans($msg);
}
$agn = strtok($agn, ' ');
mysql_query("insert into `chat` values(0,'" . $id . "','','m','" . $realtime . "','" . $login . "','','0','" . $msg . "','" . $ipp . "','" . mysql_real_escape_string($agn) . "','','');");
if (empty ($datauser['postchat'])) {
$fpst = 1;
}
else {
$fpst = $datauser['postchat'] + 1;
}
mysql_query("UPDATE `users` SET
`postchat` = '" . $fpst . "',
`lastpost` = '" . $realtime . "'
WHERE `id` = '" . $user_id . "';");
if ($type1['dpar'] == "vik") {
$protv = mysql_query("select * from `chat` where dpar='vop' and type='m' order by time desc;");
while ($protv2 = mysql_fetch_array($protv)) {
$prr[] = $protv2['id'];
}
$pro = mysql_query("select * from `chat` where dpar='vop' and type='m' and id='" . $prr[0] . "';");
$protv1 = mysql_fetch_array($pro);
$prr = array();
$ans = $protv1['realid'];
$vopr = mysql_query("select * from `vik` where id='" . $ans . "';");
$vopr1 = mysql_fetch_array($vopr);
$answer = $vopr1['otvet'];
if (!empty ($msg) && !empty ($answer) && $protv1['otv'] != 1) {
if (preg_match("/$answer/i", "$msg")) {
$itg = $datauser['otvetov'] + 1;
switch ($protv1['otv']) {
case "2" :
$pods = ", не используя подсказок";
$bls = 5;
break;
case "3" :
$pods = ", используя одну подсказку";
$bls = 3;
break;
case "4" :
$pods = ", используя две подсказки";
$bls = 2;
break;
}
$balans = $datauser['balans'] + $bls;
$otvtime = $realtime - $protv1['time'];
if ($datauser['sex'] == "m") {
$tx =
"молодец! Ты угадал правильный ответ: $answer за $otvtime секунд $pods ,и заработал $bls баллов. Всего правильных ответов:<b>$itg</b>, твой игровой баланс $balans баллов.";
}
else {
$tx =
"молодец! Ты угадала правильный ответ: $answer за $otvtime секунд $pods ,и заработала $bls баллов. Всего правильных ответов:<b>$itg</b>, твой игровой баланс $balans баллов.";
}
$mtim = $realtime + 1;
mysql_query("INSERT INTO `chat` VALUES(
'0','" . $id . "','','m','" . $mtim . "','Умник','" . $login . "','', '" . $tx . "', '127.0.0.1', 'Nokia3310', '','');");
mysql_query("update `chat` set otv='1' where id='" . $protv1['id'] . "';");
mysql_query("update `users` set otvetov='" . $itg . "',balans='" . $balans . "' where id='" . intval($_SESSION['uid']) . "';");
}
}
}
header("location: $home/chat/index.php?id=$id");
}
else {
require_once ("chat_header.php");
echo 'Добавление сообщения<br />(max. 500)';
echo '<div class="title1">' . $type1['text'] . '</div>';
echo "<form action='index.php?act=say&id=" . $id . "' method='post'><textarea cols='" . $set_chat['carea_w'] . "' rows='" . $set_chat['carea_h'] .
"' title='Введите текст сообщения' name='msg'></textarea><br/>";
if ($set_user['translit'])
echo "<input type='checkbox' name='msgtrans' value='1' /> Транслит сообщения<br/>";
echo "<input type='submit' title='Нажмите для отправки' name='submit' value='Отправить'/></form>";
echo "<div class='title2'><a href='index.php?act=trans'>Транслит</a> | <a href='../str/smile.php'>Смайлы</a><br/>";
echo "</div><br />[0] <a href='index.php?id=" . $id . "' accesskey='0'>Назад</a>";
}
break;
case "m" :
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
$th = $type1['refid'];
$th2 = mysql_query("select * from `chat` where id= '" . $th . "';");
$th1 = mysql_fetch_array($th2);
if (isset ($_POST['submit'])) {
$flt = $realtime - 10;
$af = mysql_query("select * from `chat` where type='m' and time>'" . $flt . "' and `from`= '" . $login . "';");
$af1 = mysql_num_rows($af);
if ($af1 != 0) {
require_once ("../incfiles/head.php");
echo "Антифлуд!Вы не можете так часто добавлять сообщения<br/>Порог 10 секунд<br/><a href='index.php?id=" . $th . "'>Назад</a><br/>";
require_once ("../incfiles/end.php");
exit;
}
if (empty ($_POST['msg'])) {
require_once ("../incfiles/head.php");
echo "Вы не ввели сообщение!<br/><a href='index.php?act=say&id=" . $id . "'>Повторить</a><br/>";
require_once ("../incfiles/end.php");
exit;
}
$to = $type1['from'];
$priv = intval($_POST['priv']);
$nas = check($_POST['nas']);
$msg = check(trim($_POST['msg']));
$msg = mb_substr($msg, 0, 500);
if ($_POST['msgtrans'] == 1) {
$msg = trans($msg);
}
mysql_query("insert into `chat` values(0,'" . $th . "','','m','" . $realtime . "','" . $login . "','" . $to . "','" . $priv . "','" . $msg . "','" . $ipp . "','" . mysql_real_escape_string($agn) . "','" . $nas . "','');"
);
if (empty ($datauser['postchat'])) {
$fpst = 1;
}
else {
$fpst = $datauser['postchat'] + 1;
}
mysql_query("update `users` set postchat='" . $fpst . "' where id='" . intval($_SESSION['uid']) . "';");
if ($th1[dpar] == "vik") {
$protv = mysql_query("select * from `chat` where dpar='vop' and type='m' order by time desc;");
while ($protv2 = mysql_fetch_array($protv)) {
$prr[] = $protv2['id'];
}
$pro = mysql_query("select * from `chat` where dpar='vop' and type='m' and id='" . $prr[0] . "';");
$protv1 = mysql_fetch_array($pro);
$prr = array();
$ans = $protv1['realid'];
$vopr = mysql_query("select * from `vik` where id='" . $ans . "';");
$vopr1 = mysql_fetch_array($vopr);
$answer = $vopr1['otvet'];
if (!empty ($msg) && !empty ($answer) && $protv1['otv'] != 1) {
if (preg_match("/$answer/i", "$msg")) {
$itg = $datauser['otvetov'] + 1;
switch ($protv1['otv']) {
case "2" :
$pods = ", не используя подсказок";
$bls = 5;
break;
case "3" :
$pods = ", используя одну подсказку";
$bls = 3;
break;
case "4" :
$pods = ", используя две подсказки";
$bls = 2;
break;
}
$balans = $datauser['balans'] + $bls;
$otvtime = $realtime - $protv1['time'];
if ($datauser['sex'] == "m") {
$tx =
"молодец! Ты угадал правильный ответ: $answer за $otvtime секунд $pods ,и заработал $bls баллов. Всего правильных ответов:<b>$itg</b>, твой игровой баланс $balans баллов.";
}
else {
$tx =
"молодец! Ты угадала правильный ответ: $answer за $otvtime секунд $pods ,и заработала $bls баллов. Всего правильных ответов:<b>$itg</b>, твой игровой баланс $balans баллов.";
}
$mtim = $realtime + 1;
mysql_query("INSERT INTO `chat` VALUES(
'0','" . $th . "','','m','" . $mtim . "','Умник','" . $login . "','', '" . $tx . "', '127.0.0.1', 'Nokia3310', '','');");
mysql_query("update `chat` set otv='1' where id='" . $protv1['id'] . "';");
mysql_query("update `users` set otvetov='" . $itg . "',balans='" . $balans . "' where id='" . intval($_SESSION['uid']) . "';");
}
}
}
header("location: $home/chat/index.php?id=$th");
}
else {
require_once ("chat_header.php");
$user = mysql_query("select * from `users` where name='" . $type1['from'] . "';");
$ruz = mysql_num_rows($user);
if ($ruz != 0) {
$udat = mysql_fetch_array($user);
echo "<a href='../str/anketa.php?id=" . $udat['id'] . "'><b>$type1[from]</b></a>";
echo " (id: $udat[id])";
$ontime = $udat['lastdate'];
$ontime2 = $ontime + 300;
if ($realtime > $ontime2) {
echo "<font color='" . $coffs . "'> [Off]</font><br/>";
}
else {
echo "<font color='" . $cons . "'> [ON]</font><br/>";
}
if ($udat['dayb'] == $day && $udat['monthb'] == $mon) {
echo "<font color='" . $cdinf . "'>ИМЕНИННИК!!!</font><br/>";
}
switch ($udat['rights']) {
case 7 :
echo ' Админ ';
break;
case 6 :
echo ' Супермодер ';
break;
case 5 :
echo ' Зам. админа по библиотеке ';
break;
case 4 :
echo ' Зам. админа по загрузкам ';
break;
case 3 :
echo ' Модер форума ';
break;
case 2 :
echo ' Модер чата ';
break;
case 1 :
echo ' Киллер ';
break;
default :
echo ' юзер ';
break;
}
echo '<br/>';
if (!empty ($udat['status'])) {
echo $udat['status'] . '<br/>';
}
if ($udat['sex'] == "m") {
echo "Парень<br/>";
}
if ($udat['sex'] == "zh") {
echo "Девушка<br/>";
}
if (!empty ($udat['balans'])) {
echo "Игровой баланс: $udat[balans] баллов<br/>";
}
if ($udat['ban'] == "1" && $udat['bantime'] > $realtime || $udat['ban'] == "2") {
echo "<font color='" . $cdinf . "'>Бан!</font><br/>";
}
if (empty ($udat['nastroy'])) {
$nstr = "без настроения";
}
else {
$nstr = $udat['nastroy'];
}
echo "Настроение: $udat[nastroy]<br/>";
}
echo "Добавление сообщения в комнату <b>$th1[text]</b><br />для <b>$type1[from]</b>(max. 500):<br/><form action='index.php?act=say&id=" . $id . "' method='post'>";
echo "<textarea cols='40' rows='3' title='Введите ответ' name='msg'></textarea><br/>";
if ($set_user['translit'])
echo '<input type="checkbox" name="msgtrans" value="1" /> Транслит сообщения<br/>';
echo '<select name="priv">';
echo '<option value="0">Всем</option>';
echo '<option value="1">Приватно</option>';
echo '</select><br/>';
echo
"Эмоции:<br/><select name='nas'>
<option value=''>Бeз эмoций</option>
<option value='[Paдocтнo] '>Paдocтнo</option>
<option value='[Пeчaльнo] '>Пeчaльнo</option>
<option value='[Удивлённo] '>Удивлённo</option>
<option value='[Лacкoвo] '>Лacкoвo</option>
<option value='[Смyщённo] '>Cмyщённo</option>
<option value='[Koкeтливo] '>Koкeтливo</option>
<option value='[Oбижeннo] '>Oбижeннo</option>
<option value='[Нacтoйчивo] '>Нacтойчивo</option>
<option value='[Шёпoтoм] '>Шёпoтoм</option>
<option value='[Агрессивно] '>Агрессивно</option>
<option value='[Шокированно] '>Шокированно</option>
<option value='[Огорченно] '>Огорченно</option>
<option value='[Издевательски] '>Издевательски</option>
<option value='[Испацтула] '>Испацтула</option>
<option value='[Нагло] '>Нагло</option>
<option value='[Испуганно] '>Испуганно</option>
<option value='[Злобно] '>Злобно</option>
<option value='[Улыбаясь] '>Улыбаясь</option>
<option value='[Подмигивая] '>Подмигивая</option>
<option value='[Удрученно] '>Удрученно</option>
<option value='[Устало] '>Устало</option>
<option value='[Задумчиво] '>Задумчиво</option>
<option value='[Откровенно] '>Откровенно</option>
</select><br/>";
echo "<input type='submit' title='Нажмите для отправки' name='submit' value='Отправить'/><br/></form>";
echo "<a href='index.php?act=trans'>Транслит</a><br/><a href='../str/smile.php'>Смайлы</a><br/>";
if ($ruz != 0) {
echo "<br/><a href='../str/pradd.php?act=write&adr=" . $udat['id'] . "'>Написать в приват</a><br/>";
if (($rights == 2 || $rights >= 6)) {
echo "<a href='../" . $admp . "/zaban.php?do=ban&id=" . $udat['id'] . "&chat'>Пнуть</a><br/>";
}
}
echo "<a href='index.php?id=" . $type1['refid'] . "'>Назад</a><br/>";
}
break;
default :
require_once ("../incfiles/head.php");
echo "Ошибка!<br/>»<a href='?'>В чат</a><br/>";
break;
}
require_once ('chat_footer.php');
break;
case "chpas" :
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
$_SESSION['intim'] = "";
header("location: $home/chat/index.php?id=$id");
break;
case "pass" :
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
$parol = check($_POST['parol']);
$_SESSION['intim'] = $parol;
mysql_query("update `users` set alls='" . $parol . "' where id='" . intval($_SESSION['uid']) . "';");
header("location: $home/chat/index.php?id=$id");
break;
default :
////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////
if ($id) {
// Отображаем комнату Чата
require_once ('room.php');
}
else {
// Отображаем прихожую Чата
require_once ('hall.php');
}
}
?>