View file forum/posting.php

File size: 13.67Kb
<?php 
// by mides, icq: 529-899-6, mail: [email protected]

$title = 'Форум';
require("../config.php");
require("../includes/start.php");
require("../includes/functions.php");

tp('Форум');

$id = intval($_REQUEST['id']);

switch($_GET['act']){

###############################################################################
##                         Добавление сообщения                              ##
###############################################################################
case 'msg_add':

if(!empty($_SESSION['login'])){
	$topic = mysql_fetch_assoc(mysql_query("SELECT * FROM `forum_topics` WHERE `id` = '$id'"));
	if(isset($topic['id'])){
		if(!empty($_POST['text'])){
			$text = sec($_POST['text']);
			mysql_query("INSERT INTO `forum_msg` SET `id_cat` = '".$topic['id_cat']."', `id_topic` = '$id', `text` = '$text', `login` = '".$_SESSION['login']."', `time` = '".time()."'") or die(mysql_error());
			mysql_query("UPDATE `forum_topics` SET `last_user` = '".$_SESSION['login']."' WHERE `id` = '$id'");
			mysql_query("UPDATE `users` SET `user_points` = (user_points+1) WHERE `id` = '".$_SESSION['user_id']."'");
			info('Ваше сообщение успешно добавлено!');
			nav2('topic.php?id='.$id.'&amp;', 'назад');
		}else{
			error('Вы не заполнили поле!');
			nav2('topic.php?id='.$id.'&amp;', 'назад');
		}
	}else{
		error('Выбранная тема не существует!');
		nav2('topic.php?id='.$id.'&amp;', 'назад');
	}
}else{
	error('Вы не авторизованы для добавления сообщений!');
	nav2('topic.php?id='.$id.'&amp;', 'назад');
}

break;

###############################################################################
##                           Форма ответа на сообщение                              ##
###############################################################################
case 'answer':

$page = intval($_REQUEST['page']);

if(!empty($_SESSION['login'])){
	$row = mysql_fetch_assoc(mysql_query("SELECT * FROM `forum_msg` WHERE `id` = '$id'"));
	if(isset($row['id'])){
		echo '<div class="s1">Ответ пользователю '.$row['authour'].'</div><div class="s2">';
		echo '<form action="?act=answered&amp;id='.$id.'&amp;page='.$page.'" method="post" name="form">';
		echo '<textarea name="text" rows="4">'.$row['authour'].', </textarea>';
		echo '<input name="submit" type="submit" value="Ответить" /></form></div>';
		nav2('topic.php?id='.$row['id_topic'].'', 'назад');
	}else{
		error('Сообщение, на которое вы хотите ответить не существует!');
		nav();
	}
}else{
	error('Вы не авторизованы для ответа на сообщение!');
	nav();
}
break;

###############################################################################
##                           Ответ на сообщение                              ##
###############################################################################
case 'answered':

$page = intval($_REQUEST['page']);

$text = sec($_POST['text']);
if(!empty($_POST['text'])){
	$row = mysql_fetch_assoc(mysql_query("SELECT * FROM `forum_msg` WHERE `id` = '$id'"));
	mysql_query("INSERT INTO `forum_msg` SET `id_cat` = '".$row['id_cat']."', `id_topic` = '".$row['id_topic']."', `text` = '$text', `authour` = '".$_SESSION['login']."', `time` = '".time()."'");
	info('Вы успешно оставили ответ!');
	nav2('topic.php?id='.$row['id_topic'].'&amp;page='.$page.'', 'назад');
}else{
	error('Вы не заполнили поле!');
	nav2('posting.php?act=answer&amp;id='.$id.'&amp;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&amp;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(!empty($_SESSION['login'])){
	echo '<div class="s1">Начать новую тему</div><div class="s2">';
	echo '<form action="posting.php?act=topic_added&amp;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&amp;id='.$id.'', 'в раздел');
}else{
	error('Вы не авторизованы для создания темы!');
	nav2('index.php?act=cat_view&amp;id='.$id.'', 'назад');
}

break;

###############################################################################
##                              Cозданиt темы                                ##
###############################################################################
case 'topic_added':

if(!empty($_POST['title']) && !empty($_POST['text'])){
	$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_user` = '".$_SESSION['login']."'");
	$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+2) WHERE `id` = '".$_SESSION['user_id']."'");
	info('Тема успешно создана!');
	nav2('index.php?act=cat_view&amp;id='.$id.'', 'в раздел');
}else{
	error('Вы не заполнили поля!');
	nav2('posting.php?act=topic_add&amp;id='.$id.'', 'назад');
}

break;

###############################################################################
##                              Закрытие темы                                ##
###############################################################################
case 'topic_close':

$result = mysql_query("UPDATE `forum_topics` SET `closed` = 1 WHERE `id` = '$id'");

info('Тема успешно закрыта!');
nav2('topic.php?id='.$id.'', 'в тему');

break;

###############################################################################
##                              Открытие темы                                ##
###############################################################################
case 'topic_open':

$result = mysql_query("UPDATE `forum_topics` SET `closed` = 0 WHERE `id` = '$id'");

info('Тема успешно открыта!');
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&amp;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'] > 0){
		$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&amp;id='.$topic['id_cat'].'', 'в раздел');

break;





















}
require("../includes/tail.php");
?>