Просмотр файла book/index.php

Размер файла: 11.15Kb
<?php 
// by mides, icq: 529-899-6, mail: [email protected]

$title = 'Гостевая книга';
require("../config.php");
require("../includes/start.php");
require("../includes/functions.php");

tp('Гостевая книга');

if($config['guest_off'] == 0){

switch($_GET['act']){

###############################################################################
##                       Главная страница                                    ##
###############################################################################
default:

echo '<div class="s1">Сообщения</div><div class="list">';
$count = mysql_result(mysql_query("SELECT COUNT(*) FROM `book`"), 0);
if($count > 0){
	$pages = ceil($count/$config['onpage']);
	if(isset($_REQUEST['page'])){
		$page = num($_REQUEST['page']);
	}else{
		$page = 1;
	}
	$from = ($page-1)*$config['onpage'];

	$result = mysql_query("SELECT * FROM `book` ORDER BY `time` DESC LIMIT $from, ".$config['onpage']."");
	while($msg = mysql_fetch_assoc($result)){
		if(!isset($num)) $num = 1;  
		$num++;
		
		$row_class = (!($num % 2)) ? 'row1' : 'row2';	
		echo '<div class="'.$row_class.'">';
		
		echo '<a href="index.php?act=answer&amp;id='.$msg['id'].'">'.$msg['login'].'</a> <i>'.date('d.m.Y / H:i', $msg['time']).'</i>';
		
		if($msg['login'] == $_SESSION['login'] or $_SESSION['access'] > 0){
			if($msg['time']+900 > time() or $_SESSION['access'] > 0){
				echo ' (<a href="index.php?act=edit&amp;id='.$msg['id'].'">ред</a>/<a href="index.php?act=del&amp;id='.$msg['id'].'">уд</a>)';
			}
		}
		
		echo '<br/>';
		
		echo bb($msg['text']).'<br/>';
		
		if(!empty($msg['edit_login']) && !empty($msg['edit_time'])){
			echo '<i><font color="#999999">посл. ред.: '.date('d.m.y / H:i', $msg['edit_time']).', by '.$msg['edit_login'].'</font></i><br/>';
		}
		
		echo '</div>';
	}
}else{
	echo '<div class="row1">Сообщений еще нет</div>';
}

echo '</div><div class="s1">Навигация</div><div class="s2">';
navig($page, 'index.php?', $pages);
if(!empty($_SESSION['login']) or $config['guest_ableforguests'] == 0){
	echo 'Добавить сообщение:<br/>';
	echo '<form action="index.php?act=add" method="post" name="form">';
	echo '<textarea name="text" cols="" rows="3"></textarea><br/>';
	if(empty($_SESSION['login'])){
		echo 'Введите число:<br/>';
		$_SESSION['protect'] = rand(1111, 9999);
		echo '<img src="../images/protect.php" alt="" /><br />';
		echo '<input name="protect" type="text" maxlength="4" /><br/>';
	}
echo '<input name="submit" type="submit" value="Написать" /></form><br/>';
}
echo '<a href="../">на главную</a></div>';

break;

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

// добавление сообщения пользователем
if(!empty($_SESSION['login'])){
	if(!empty($_POST['text'])){
		$login = $_SESSION['login'];
		$text = sec($_POST['text']);
		mysql_query("INSERT INTO `book` SET `login` = '$login', `text` = '$text', `time` = '".time()."'");
		mysql_query("UPDATE `users` SET `user_points` = (user_points+1) WHERE `id` = '".$_SESSION['user_id']."'");
		info('Сообщение успешно добавлено!');
		nav2('./', 'гостевая');
	}else{error('Вы не заполнили поле!'); nav2('./', 'назад');}
// добавление сообщения гостем	
}elseif($config['guest_ableforguests'] == 0){
	if(!empty($_POST['text'])){
		if($_SESSION['protect'] == intval($_POST['protect'])){
			$login = 'Гость';
			$text = sec($_POST['text']);
			mysql_query("INSERT INTO `book` SET `login` = '$login', `text` = '$text', `time` = '".time()."'");
			info('Сообщение успешно добавлено!');
			nav2('./', 'гостевая');
		}else{
			error('Вы не верно ввели проверочный код');
			nav2('./', 'назад');
		}
	}else{
		error('Вы не заполнили поле!');
		nav2('./', 'назад');
	}
}else{
	error('Гости не могут оставлять сообщения!'); nav2('./', 'назад');}
break;

###############################################################################
##                        Форма добавления ответа                            ##
###############################################################################
case 'answer':

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

$msg = mysql_fetch_assoc(mysql_query("SELECT * FROM `book` WHERE `id` = '$id'"));
if(isset($msg['id'])){
	if(!empty($_SESSION['login']) or empty($_SESSION['login']) and $config['guest_ableforguests'] == 0){
		echo '<form action="?act=answered&amp;id='.$id.'" method="post" name="form">';
		echo '<div class="s1">Ответ пользователю '.$msg['login'].'</div><div class="s2">';
		echo '<textarea name="text" rows="3">'.$msg['login'].', </textarea><br/>';
		if(empty($_SESSION['login']) and $config['guest_ableforguests'] == 0){
			echo 'Введите число:<br/>';
			$_SESSION['protect'] = rand(1111, 9999);
			echo '<img src="../images/protect.php" alt="" /><br />';
			echo '<input name="protect" type="text" maxlength="4" /><br/>';
		}
		echo '<input name="submit" type="submit" value="Ответить" /></form></div>';
	}else{
		error('Гости не могут оставлять сообщения!');
	}
}else{
	error('Сообщение, на которое вы хотите ответить не существует!');
}
nav2('./', 'назад');
break;

###############################################################################
##                            Добавление ответа                              ##
###############################################################################
case 'answered':

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

// добавление ответа пользователем
if(!empty($_SESSION['login'])){
	if(!empty($_POST['text'])){
		$login = $_SESSION['login'];
		$text = sec($_POST['text']);
		mysql_query("INSERT INTO `book` SET `login` = '$login', `text` = '$text', `time` = '".time()."'");
		mysql_query("UPDATE `users` SET `user_points` = (user_points+1) WHERE `id` = '".$_SESSION['user_id']."'");
		info('Сообщение успешно добавлено!');
		nav2('./', 'гостевая');
	}else{error('Вы не заполнили поле!'); nav2('./', 'назад');}
// добавление ответа гостем	
}else{
	if($config['guest_ableforguests'] == 0){
		if(!empty($_POST['text'])){
			if($_SESSION['protect'] == intval($_POST['protect'])){
				$login = 'Гость';
				$text = sec($_POST['text']);
				mysql_query("INSERT INTO `book` SET `login` = '$login', `text` = '$text', `time` = '".time()."'");
				info('Сообщение успешно добавлено!');
				nav2('./', 'гостевая');
			}else{
				error('Вы не верно ввели число!');
				nav2('./', 'назад');
			}	
		}else{
			error('Вы не заполнили поле!');
			nav2('./', 'назад');
		}
	}else{
		error('Гости не могут оставлять сообщения!');
		nav2('./', 'назад');
	}
}
break;

###############################################################################
##                    Форма редактирования сообщения                         ##
###############################################################################
case 'edit':

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

$msg = mysql_fetch_assoc(mysql_query("SELECT * FROM `book` 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=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>';
			nav2('./', 'назад');
		}else{
			error('Время в течение которого вы могли изменить сообщение истекло!');
			nav2('./', 'назад');
		}
	}else{
		error('Вы не можете изменить это сообщение!');
		nav2('./', 'назад');
	}
}else{
	error('Сообщение не существует!');
	nav2('./', 'назад');
}

break;

###############################################################################
##                       Редактирование сообщения                            ##
###############################################################################
case 'edited':

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

$msg = mysql_fetch_assoc(mysql_query("SELECT * FROM `book` 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 `book` SET `text` = '$text', `edit_login` = '".$_SESSION['login']."', `edit_time` = '".time()."' WHERE `id` = '$id'");
			info('Сообщение успешно отредактировано!');
			nav2('./', 'назад');
		}else{
			error('Время в течение которого вы могли отредактировать сообщение истекло!');
			nav2('./', 'назад');
		}
	}else{
		error('Вы не можете отредактировать это сообщение!');
		nav2('./', 'назад');
	}
}else{
	error('Сообщение не существует!');
	nav2('./', 'назад');
}

break;

###############################################################################
##                           Удаление сообщения                              ##
###############################################################################
case 'del':

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

$msg = mysql_fetch_assoc(mysql_query("SELECT * FROM `book` 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 `book` WHERE `id` = '$id'");
			info('Сообщение успешно удалено!');
			nav2('./', 'назад');
		}else{
			error('Время в течение которого вы могли удалить сообщение истекло!');
			nav2('./', 'назад');
		}
	}else{
		error('Вы не можете удалить это сообщение!');
		nav2('./', 'назад');
	}
}else{
	error('Сообщение не существует!');
	nav2('./', 'назад');
}

break;

}

}else{
	error('Гостевая отключена');
	nav();
}
require("../includes/tail.php");
?>