<?php
// by mides, icq: 529-899-6, mail: [email protected]
$title = 'Форум';
require("../config.php");
require("../includes/start.php");
require("../includes/functions.php");
tp('Форум');
$id = num($_REQUEST['id']);
switch($_GET['act']){
###############################################################################
## Добавление сообщения ##
###############################################################################
case 'msg_add':
$page = num($_REQUEST['page']);
if($_SESSION['login']){
$topic = mysql_fetch_assoc(mysql_query("SELECT `id`, `closed` FROM `forum_topics` WHERE `id` = '$id'"));
if(isset($topic['id'])){
if($topic['closed'] == 0){
if(!empty($_POST['text'])){
$text = sec($_POST['text']);
mysql_query("INSERT INTO `forum_msg` SET `id_cat` = '".$topic['id_cat']."', `id_topic` = '".$topic['id']."', `text` = '$text', `login` = '".$_SESSION['login']."', `time` = '".time()."'");
mysql_query("UPDATE `users` SET `user_points` = (user_points+1) WHERE `id` = '".$_SESSION['user_id']."'");
info('Ваше сообщение успешно добавлено!');
}else{
error('Вы не заполнили поле!');
}
}else{
error('Тема закрыта! Добавить сообщение невозможно!');
}
}else{
error('Выбранная тема не существует!');
}
}else{
error('Вы не авторизованы для добавления сообщений!');
}
nav2('topic.php?id='.$topic['id'].'&page='.$page.'', 'назад');
break;
###############################################################################
## Форма ответа на сообщение ##
###############################################################################
case 'answer':
$page = num($_REQUEST['page']);
if($_SESSION['login']){
$msg = mysql_fetch_assoc(mysql_query("SELECT `id`, `id_topic`, `login` FROM `forum_msg` WHERE `id` = '$id'"));
if(isset($msg['id'])){
$topic = mysql_fetch_assoc(mysql_query("SELECT `closed` FROM `forum_topics` WHERE `id` = '".$msg['id_topic']."'"));
if($topic['closed'] == 0 or $_SESSION['access'] > 0){
echo '<div class="s1">Ответ пользователю '.$msg['login'].'</div><div class="s2">';
echo '<form action="?act=answered&id='.$id.'&page='.$page.'" method="post" name="form">';
echo '<textarea name="text" rows="4">'.$msg['login'].', </textarea>';
echo '<input name="submit" type="submit" value="Ответить" /></form></div>';
}else{
error('Тема закрыта, ответ невозможен!');
}
}else{
error('Сообщение, на которое вы хотите ответить не существует!');
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для ответа на сообщение!');
}
nav2('topic.php?id='.$msg['id_topic'].'&page='.$page.'', 'назад');
break;
###############################################################################
## Ответ на сообщение ##
###############################################################################
case 'answered':
$page = num($_REQUEST['page']);
if($_SESSION['login']){
$msg = mysql_fetch_assoc(mysql_query("SELECT `id`, `id_cat`, `id_topic` FROM `forum_msg` WHERE `id` = '$id'"));
if(isset($msg['id'])){
$topic = mysql_fetch_assoc(mysql_query("SELECT `closed` FROM `forum_topics` WHERE `id` = '".$msg['id_topic']."'"));
if($topic['closed'] == 0 or $_SESSION['access'] > 0){
if(!empty($_POST['text'])){
$text = sec($_POST['text']);
mysql_query("INSERT INTO `forum_msg` SET `id_cat` = '".$msg['id_cat']."', `id_topic` = '".$msg['id_topic']."', `text` = '$text', `login` = '".$_SESSION['login']."', `time` = '".time()."'");
mysql_query("UPDATE `users` SET `user_points` = (user_points+1) WHERE `id` = '".$_SESSION['user_id']."'");
info('Вы успешно оставили ответ!');
nav2('topic.php?id='.$msg['id_topic'].'&page='.$page.'', 'назад');
}else{
error('Вы не заполнили поле!');
nav2('posting.php?act=answer&id='.$id.'&page='.$page.'', 'назад');
}
}else{
error('Тема закрыта, ответ невозможен!');
nav2('topic.php?id='.$msg['id_topic'].'&page='.$page.'', 'назад');
}
}else{
error('Сообщение, на которое вы хотите ответить не существует!');
nav2('topic.php?id='.$msg['id_topic'].'&page='.$page.'', 'назад');
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для ответа на сообщение!');
nav2('topic.php?id='.$msg['id_topic'].'&page='.$page.'', 'назад');
}
break;
###############################################################################
## Форма редактирования сообщения ##
###############################################################################
case 'msg_edit':
$id = intval($_REQUEST['id']);
$msg = mysql_fetch_assoc(mysql_query("SELECT * FROM `forum_msg` WHERE `id` = '$id'"));
if(isset($msg['id'])){
if($msg['login'] == $_SESSION['login'] or $_SESSION['access'] > 0){
if($msg['time']+900 > time() or $_SESSION['access'] > 0){
echo '<div class="s1">Редактирование сообщения</div><div class="s2">';
echo '<form action="?act=msg_edited&id='.$id.'" method="post" name="form">';
echo 'Сообщение:<br/><textarea name="text" rows="3">'.$msg['text'].'</textarea>';
echo '<input name="submit" type="submit" value="Редактировать" /></form></div>';
}else{
error('Время в течение которого вы могли изменить сообщение истекло!');
}
}else{
error('Вы не можете изменить это сообщение!');
}
}else{
error('Сообщение не существует!');
}
nav2('topic.php?id='.$msg['id_topic'].'', 'назад');
break;
###############################################################################
## Редактирование сообщения ##
###############################################################################
case 'msg_edited':
$id = intval($_REQUEST['id']);
$msg = mysql_fetch_assoc(mysql_query("SELECT * FROM `forum_msg` WHERE `id` = '$id'"));
if(isset($msg['id'])){
if($msg['login'] == $_SESSION['login'] or $_SESSION['access'] > 0){
if($msg['time']+900 > time() or $_SESSION['access'] > 0){
$text = sec($_POST['text']);
mysql_query("UPDATE `forum_msg` SET `text` = '$text', `edit_login` = '".$_SESSION['login']."', `edit_time` = '".time()."' WHERE `id` = '$id'");
info('Сообщение успешно отредактировано!');
}else{
error('Время в течение которого вы могли отредактировать сообщение истекло!');
}
}else{
error('Вы не можете отредактировать это сообщение!');
}
}else{
error('Сообщение не существует!');
}
nav2('topic.php?id='.$msg['id_topic'].'', 'назад');
break;
###############################################################################
## Удаление сообщения ##
###############################################################################
case 'msg_del':
$id = intval($_REQUEST['id']);
$msg = mysql_fetch_assoc(mysql_query("SELECT * FROM `forum_msg` WHERE `id` = '$id'"));
if(isset($msg['id'])){
if($msg['login'] == $_SESSION['login'] or $_SESSION['access'] > 0){
if($msg['time']+900 > time() or $_SESSION['access'] > 0){
mysql_query("DELETE FROM `forum_msg` WHERE `id` = '$id'");
info('Сообщение успешно удалено!');
}else{
error('Время в течение которого вы могли удалить сообщение истекло!');
}
}else{
error('Вы не можете удалить это сообщение!');
}
}else{
error('Сообщение не существует!');
}
nav2('topic.php?id='.$msg['id_topic'].'', 'назад');
break;
###############################################################################
## Форма создания темы ##
###############################################################################
case 'topic_add':
if($_SESSION['login']){
echo '<div class="s1">Начать новую тему</div><div class="s2">';
echo '<form action="posting.php?act=topic_added&id='.$id.'" method="post" name="form">';
echo 'Название:<br/><input name="title" type="text" maxlength="25" /><br/>';
echo 'Сообщение:<br/><textarea name="text" rows="4"></textarea><br/>';
echo '<input name="submit" type="submit" value="Создать тему" /></form></div>';
nav2('index.php?act=cat_view&id='.$id.'', 'в раздел');
}else{
error('Вы не можете создать тему, т.к. вы не <a href="../pages/auth.php">авторизованы</a>');
nav2('index.php?act=cat_view&id='.$id.'', 'назад');
}
break;
###############################################################################
## Cозданиt темы ##
###############################################################################
case 'topic_added':
if($_SESSION['login']){
if(time() >= $_SESSION['antispam']){
if(!empty($_POST['title']) && !empty($_POST['text'])){
if(strlen($_POST['title']) <= 25){
if(strlen($_POST['text']) <= 1699){
$title = sec($_POST['title']);
$text = sec($_POST['text']);
mysql_query("INSERT INTO `forum_topics` SET `id_cat` = '$id', `title` = '$title', `authour` = '".$_SESSION['login']."', `time` = '".time()."'");
$last_id = mysql_insert_id();
mysql_query("INSERT INTO `forum_msg` SET `id_cat` = '$id', `id_topic` = '$last_id', `text` = '$text', `login` = '".$_SESSION['login']."', `time` = '".time()."'");
mysql_query("UPDATE `users` SET `user_points` = (user_points+1) WHERE `id` = '".$_SESSION['user_id']."'");
$_SESSION['antispam'] = time() + $config['antispam'];
info('Тема успешно создана!');
nav2('index.php?act=cat_view&id='.$id.'', 'в раздел');
}else{
error('Слишком длинное сообщение! Не больше 1000 символов!');
nav2('posting.php?act=topic_add&id='.$id.'', 'назад');
}
}else{
error('Слишком длинное название! Не больше 25 символов!');
nav2('posting.php?act=topic_add&id='.$id.'', 'назад');
}
}else{
error('Вы не заполнили поля!');
nav2('posting.php?act=topic_add&id='.$id.'', 'назад');
}
}else{
error('Антиспам! Разрешено писать раз в '.$config['antispam'].' сек.!');
nav2('posting.php?act=topic_add&id='.$id.'', 'назад');
}
}else{
error('Вы не можете создать тему, т.к. вы не <a href="../pages/auth.php">авторизованы</a>');
nav();
}
break;
###############################################################################
## Закрытие темы ##
###############################################################################
case 'topic_close':
$topic = mysql_fetch_assoc(mysql_query("SELECT `id`, `authour` FROM `forum_topics` WHERE `id` = '$id'"));
if(isset($topic['id'])){
if($topic['authour'] == $_SESSION['login'] or $_SESSION['access'] > 0){
$result = mysql_query("UPDATE `forum_topics` SET `closed` = 1 WHERE `id` = '$id'");
info('Тема успешно закрыта!');
}else{
error('Вы не можете закрыть эту тему!');
}
}else{
error('Выбранная тема не существует!');
}
nav2('topic.php?id='.$id.'', 'в тему');
break;
###############################################################################
## Открытие темы ##
###############################################################################
case 'topic_open':
$topic = mysql_fetch_assoc(mysql_query("SELECT `id` FROM `forum_topics` WHERE `id` = '$id'"));
if(isset($topic['id'])){
if($_SESSION['access'] > 0){
$result = mysql_query("UPDATE `forum_topics` SET `closed` = 0 WHERE `id` = '$id'");
info('Тема успешно открыта!');
}else{
error('Вы не можете открыть эту тему!');
}
}else{
error('Выбранная тема не существует!');
}
nav2('topic.php?id='.$id.'', 'в тему');
break;
###############################################################################
## Форма редактирования темы ##
###############################################################################
case 'topic_edit':
$topic = mysql_fetch_assoc(mysql_query("SELECT * FROM `forum_topics` WHERE `id` = '$id'"));
if(isset($topic['id'])){
if($topic['authour'] == $_SESSION['login'] or $_SESSION['access'] > 0){
echo '<div class="s1">Редактирование темы</div><div class="s2">';
echo '<form action="?act=topic_edited&id='.$id.'" method="post" name="form">';
echo 'Название:<br/><input name="title" type="text" maxlength="25" value="'.$topic['title'].'" /><br/>';
$msg = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `forum_msg` WHERE `id_topic` = '$id' ORDER BY `time` LIMIT 1")) or die(mysql_error());
echo 'Сообщение:<br/><textarea name="text" rows="3">'.$msg['text'].'</textarea>';
echo '<input name="submit" type="submit" value="Редактировать" /></form></div>';
}else{
error('Вы не можете изменить эту тему!');
}
}else{
error('Тема не существует!');
}
nav2('topic.php?id='.$id.'', 'назад');
break;
###############################################################################
## Редактирование темы ##
###############################################################################
case 'topic_edited':
$topic = mysql_fetch_assoc(mysql_query("SELECT * FROM `forum_topics` WHERE `id` = '$id'"));
$msg = mysql_fetch_assoc(mysql_query("SELECT * FROM `book` WHERE `id_topic` = '$id'"));
if(isset($topic['id'])){
if($topic['login'] == $_SESSION['login'] or $_SESSION['access'] > 0){
$title = sec($_POST['title']);
$text = sec($_POST['text']);
mysql_query("UPDATE `forum_topics` SET `title` = '$title' WHERE `id` = '$id'");
mysql_query("UPDATE `forum_msg` SET `text` = '$text', `edit_login` = '".$_SESSION['login']."', `edit_time` = '".time()."' WHERE `id_topic` = '$id' ORDER BY `time` LIMIT 1");
info('Тема успешно отредактирована!');
}else{
error('Вы не можете отредактировать эту тему!');
}
}else{
error('Тема не существует!');
}
nav2('topic.php?id='.$id.'', 'назад');
break;
###############################################################################
## Удаление темы ##
###############################################################################
case 'topic_del':
$topic = mysql_fetch_assoc(mysql_query("SELECT `id`, `id_cat` FROM `forum_topics` WHERE `id` = '$id'"));
if(isset($topic['id'])){
if($_SESSION['access'] > 1){
$result = mysql_query("DELETE FROM `forum_topics` WHERE `id` = '$id'");
$result2 = mysql_query("DELETE FROM `forum_msg` WHERE `id_topic` = '$id'");
info('Тема успешно удалена!');
}else{
error('Нет доступа! Вам делать здесь нечего =)');
}
}else{
error('Темы не существует!');
}
nav2('index.php?act=cat_view&id='.$topic['id_cat'].'', 'в раздел');
break;
}
require("../includes/tail.php");
?>