File size: 5.38Kb
<?php
define('_CMEX_', 1);
require 'core/core.php';
$Show->start();
echo '<div class="top">Гостевая</div>';
echo '<a class="mlink" href="entry.php">Админ-панель</a>';
if (!isset($_SESSION['flood'])) $_SESSION['flood'] = 0;
if (isset($_GET['delete_id']) && isset($_POST['no'])) {
header('Location: /');
}
if (isset($_SESSION['admin']) && isset($_GET['delete_id']) && isset($_POST['yes']) && mysql_result(mysql_query("SELECT * FROM `book` WHERE `id` = '". $Filter->num($_GET['delete_id']) ."'"), 0) != 0) {
mysql_query("DELETE FROM `book` WHERE `id` = '". $Filter->num($_GET['delete_id']) ."'");
header('Location: /?delete');
}
if (isset($_SESSION['admin']) && isset($_GET['delete_id']) && mysql_result(mysql_query("SELECT * FROM `book` WHERE `id` = '". $Filter->num($_GET['delete_id']) ."'"), 0) != 0) {
echo '<form method="post" action="/?delete_id='. $Filter->num($_GET['delete_id']) .'">
<div class="menu">
Подтверждаете удаление сообщения?<br />
<input type="submit" name="yes" value="Да, удалить" /> <input type="submit" name="no" value="Нет, вернуться назад" />
</div>
</form>';
$Show->end();
}
if (!isset($_SESSION['login']) && !isset($_SESSION['mail']) && isset($_POST['save'])) {
$login = $Filter->txt($_POST['login']);
$mail = $Filter->txt($_POST['mail']);
$code = $Filter->txt($_POST['code']);
if (empty($login)) {
$Show->err('Не введен логин');
}
elseif (mb_strlen($login, 'UTF-8') < 3 || mb_strlen($login, 'UTF-8') > 32) {
$Show->err('Неверная длина логина. Допустимо от 3 до 32 символов');
}
elseif (!preg_match("#^([A-zА-я0-9\-\_\ ])+$#ui", $login)) {
$Show->err('Запрещенные символы в логине. Разрешены символы A-zА-я0-9-_ и пробел');
}
elseif (empty($mail)) {
$Show->err('Не введен @mail');
}
elseif (mb_strlen($mail, 'UTF-8') < 7 || mb_strlen($mail, 'UTF-8') > 72) {
$Show->err('Неверная длина @mail. Допустимо от 7 до 72 символов');
}
elseif (!preg_match('|^([a-z0-9_\.\-]{1,20})@([a-z0-9\.\-]{1,20})\.([a-z]{2,4})$|ius', $mail)) {
$Show->err('Неверный формат @mail');
}
elseif (empty($code)) {
$Show->err('Не введен проверочный код');
}
elseif ($code != $_SESSION['code']) {
$Show->err('Неверный проверочный код');
}
else
{
$_SESSION['login'] = $login;
$_SESSION['mail'] = $mail;
header("Location: /?save_login");
}
}
if (isset($_SESSION['login']) && isset($_SESSION['mail']) && isset($_POST['save'])) {
$text = $Filter->txt($_POST['text']);
if (empty($text)) {
$Show->err('Не введен текст');
}
elseif (mb_strlen($text, 'UTF-8') < 2 || mb_strlen($text, 'UTF-8') > 3200) {
$Show->err('Неверная длина текста. Допустимо от 2 до 3200 символов');
}
elseif ($_SESSION['flood'] > time()) {
$Show->err('Разрешенно писать не чаще 1раз в 7секунд');
}
else
{
$_SESSION['flood'] = time()+7;
mysql_query("INSERT INTO `book` SET `name`='".$Filter->sql($_SESSION['login'])."', `mail`='". $Filter->usql($_SESSION['mail']) ."', `msg`='". $Filter->sql($text) ."', `time`='". time() ."'");
header("Location: /?save_text");
}
}
$_SESSION['code'] = mt_rand(1000, 9999);
if (isset($_GET['save_login'])) $Show->msg('Ваши данные успешно сохранены');
if (isset($_GET['save_text'])) $Show->msg('Ваш текст успешно добавлен');
if (isset($_GET['delete'])) $Show->msg('Сообщение успешно удалено');
if (isset($_GET['entry_ok'])) $Show->msg('Вы успешно авторизовались');
if (isset($_GET['exit'])) $Show->msg('Вы успешно сбросили авторизацию');
echo '<form method="POST" action="?">
<div class="menu cntr">';
if (!isset($_SESSION['login']) && !isset($_SESSION['mail'])) {
echo '<input name="login" type="text" maxlength="20" placeholder="Логин"/><br />
<input name="mail" type="text" maxlength="30" placeholder="Е-Mail"/><br />
<img class="code" src="code.php" alt="code" /><br />
<input name="code" type="text" maxlength="4" placeholder="Цифры с картинки"/><br />';
}
else
{
echo '<textarea name="text" cols="50" rows="5" placeholder="Текст"/>'. (isset($_GET['reply'])? $Filter->txt($_GET['reply']) .', ':NULL) .'</textarea><br />';
}
echo '<input type="submit" name="save" value="Написать"/>
<input type="submit" value="Обновить"/>
</div>
</form>';
$k_post = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `book`"), 0);
if ($k_post == 0) {
echo '<div class="menu">Информация отсутствует</div>';
}
else
{
$n = new Navigator($k_post, 10);
$sql_post = mysql_query("SELECT * FROM `book` ORDER BY `id` DESC LIMIT {$n->start()}, 10");
while ($post = mysql_fetch_assoc($sql_post)) {
echo '<div class="menu">
<font color="orange">'. $post['name'] .'</font> / '. $post['mail'] .'<br />
<span>'. show_time($post['time']) .'</span><br />
'. $Filter->view($post['msg']) .'<br />
'. (isset($_SESSION['admin']) ? '<a class="mline" href="/?reply='. $post['name'] .'">отв</a>
<a class="mline" href="?delete_id='. $post['id'] .'">Удалить</a>':NULL) .'
</div>';
}
echo '<div class="menu">'. $n->navi() .'</div>';
}
echo '<a class="mlink" href="bbcode.php">Спец-теги</a>';
$Show->end();
?>