<?php
// by mides, 1da.su
$title = 'Новости';
require_once 'sys.php';
require_once 'header.php';
switch ($_GET['act']) {
default:
if (empty($ulogin)) {
tp('Авторизация');
echo '<form action="a.php?act=do" method="post">
Логин:<br /><input type="text" name="login" maxlength="12" size="12"/><br />
Пароль:<br /> <input type="password" name="pass" maxlength="15" size="12"/><br />
<input type="submit" value="Войти"/>
</form>';
nav('./');
} else {
header('location: ?act=main');
}
break;
case 'do':
if (empty($_REQUEST['l']) and empty($_REQUEST['p'])) {
$login = check($_POST['login']);
$pass = check($_POST['pass']);
} else {
$login = check($_REQUEST['l']);
$pass = check($_REQUEST['p']);
}
if ($login == $set['login'] and $pass == $set['pass']) {
# Ставим куки (86400 = day)
setcookie('ulogin', $login, time()+86400*31, '/');
setcookie('upass', $pass, time()+86400*31, '/');
# Переадресовываем браузер на главную страницу
header('location: ?act=main');
} else {
# Переадресовываем браузер на страницу авторизации, если не верно
header('location: ?');
}
break;
case 'main':
if (empty($ulogin)) header('location: ./');
tp('Приветствую, '.$ulogin.'!');
if ($_SESSION['info']) echo '<b>'.$_SESSION['info'].'</b><br />'; unset($_SESSION['info']);
echo '<a href="?act=manage">Управление новостями</a><br />
<a href="?act=add">Добавить новость</a><br />
<a href="?act=set">Настройки скрипта</a><br />
<a href="?act=exit">Выход ['.$ulogin.']</a><br />
Ваш автологин:<br /><input name="auto" type="text" value="http://'.$_SERVER['HTTP_HOST'].'/news/a.php?act=do&l='.$ulogin.'&p='.$upass.'" /><br />
Полезное:<br />
- <a href="http://1da.su">Стабильный хостинг от <font color="red">0.09</font>$</a><br />
- <a href="http://wmclub.mobi">Клуб wap-мастеров</a><br />';
nav('./');
break;
case 'manage':
if (empty($ulogin)) header('location: ./');
$all_news = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `news`"), 0);
if ($all_news > 0) {
$pages = ceil($all_news / $set['onpage']);
$page = intval($_GET['p']) ? abs($_GET['p']) : 1;
$begin = ($page - 1) * $set['onpage'];
tp('Управление новостями');
if ($_SESSION['info']) echo '<b>'.$_SESSION['info'].'</b><br />'; unset($_SESSION['info']);
$news_r = mysql_query("SELECT * FROM `news` ORDER BY `time` DESC LIMIT $begin, $set[onpage]");
while ($news = mysql_fetch_assoc($news_r)) {
echo '<a href="index.php?id='.$news['id'].'">'.$news['title'].'</a> ('.date('d.m.Y, H:i', $news['time']).' [<a href="?act=edit&id='.$news['id'].'">ред</a>]<br />';
}
} else {
echo 'Новостей еще нет<br />';
}
echo '<br /><a href="?act=add">Добавить</a></div>';
navig($page, '?act=manage&', $pages);
nav('?act=main');
break;
case 'add':
if (empty($ulogin)) header('location: ./');
if ($_REQUEST['ok']) {
if ($_POST['title'] and $_POST['text']) {
$title = check($_POST['title']);
$text = check($_POST['text']);
$closed = abs(intval($_POST['closed']));
mysql_query("INSERT INTO `news` SET `title` = '$title', `text` = '$text', `time` = '".time()."', `closed` = '$closed'");
header('location: ?act=manage');
} else {
error('Вы не заполнили важные поля.');
nav('?act=add');
}
} else {
tp('Добавить новость');
echo '<form action="?act=add&ok=1" method="post">
Название(max100):<br /><input name="title" type="text" maxlength="100" /><br />
Текст:<br /><textarea name="text" cols="" rows="5"></textarea><br />
<input name="closed" type="checkbox" value="1" /> закрыть комментирование<br />
<input name="submit" type="submit" value="Добавить" />
</form>';
nav('?act=main');
}
break;
case 'edit':
if (empty($ulogin)) header('location: ./');
$id = abs(intval($_REQUEST['id']));
$news_r = mysql_query("SELECT * FROM `news` WHERE `id` = $id");
$news = mysql_fetch_assoc($news_r);
if (isset($news['id'])) {
if ($_REQUEST['ok']) {
if ($_POST['del']) {
mysql_query("DELETE FROM `news` WHERE `id` = '$id'");
$_SESSION['info'] = 'Новость удалена.';
header('location: ?act=manage');
} else {
if ($_POST['title'] and $_POST['text']) {
$title = check($_POST['title']);
$text = check($_POST['text']);
$closed = abs(intval($_POST['closed']));
mysql_query("UPDATE `news` SET `title` = '$title', `text` = '$text', `closed` = '$closed' WHERE `id` = '$id'");
$_SESSION['info'] = 'Новость отредактирована.';
header('location: ?act=manage');
} else {
error('Вы не заполнили поля.');
nav('?act=edit&id='.$id);
}
}
} else {
tp('Редактирование новости');
echo '<form action="?act=edit&id='.$id.'&ok=1" method="post">
Название:<br /><input name="title" type="text" value="'.$news['title'].'" maxlength="100" /><br />
Текст:<br /><textarea name="text" cols="" rows="5">'.$news['text'].'</textarea><br />';
if (empty($news['closed'])) {
echo '<input name="closed" type="checkbox" value="1" /> закрыть комментирование<br />';
} else {
echo '<input name="closed" type="checkbox" value="1" checked /> закрыть комментирование<br />';
}
echo '<input name="del" type="checkbox" value="1" /> удалить<br />
<input name="submit" type="submit" value="Ok" />
</form>';
nav('?act=manage');
}
} else {
error('Новость не существует.');
nav('?act=manage');
}
break;
case 'set':
if (empty($ulogin)) header('location: ./');
if ($_REQUEST['ok']) {
if ($_POST['login'] and $_POST['pass'] and $_POST['onpage']) {
$login = check($_POST['login']);
$pass = check($_POST['pass']);
$main = check($_POST['main']);
$onpage = intval($_POST['onpage']);
$symbol = intval($_POST['symbol']);
$comm = intval($_POST['comm']);
$antispam = intval($_POST['antispam']);
$alternate = intval($_POST['alternate']);
mysql_query("UPDATE `settings` SET `login` = '$login', `pass` = '$pass', `main` = '$main', `onpage` = '$onpage', `symbol` = '$symbol', `comm` = '$comm', `antispam` = '$antispam', `alternate` = '$alternate'");
$_SESSION['info'] = 'Сохранено.';
header('location: ?');
} else {
error('Вы не заполнили важные поля.');
nav('?act=set');
}
} else {
tp('Настройки скрипта');
echo '<form action="?act=set&ok=1" method="post">
Логин админа(max20)*:<br /><input name="login" type="text" value="'.$set['login'].'" maxlength="20" /><br />
Пароль(max30)*:<br /><input name="pass" type="text" value="'.$set['pass'].'" maxlength="30" /><br />
Главная страница(<del>http://</del>, max50):<br /><input name="main" type="text" value="'.$set['main'].'" maxlength="50" /><br />
Элементов на страницу(1-999)*:<br /><input name="onpage" type="text" value="'.$set['onpage'].'" maxlength="50" /><br />
Символов в новости перед обрезанием(1-9999)*:<br /><input name="symbol" type="text" value="'.$set['symbol'].'" maxlength="50" /><br />
Комментирование новостей(1 - on, 0 - off):<br /><input name="comm" type="text" value="'.$set['comm'].'" maxlength="50" /><br />
Антиспам(0-999 сек, 0 - отключено):<br /><input name="antispam" type="text" value="'.$set['antispam'].'" maxlength="50" /><br />
Разрешить дублировать комментарии(1 - да, 0 - нет):<br /><input name="alternate" type="text" value="'.$set['alternate'].'" maxlength="50" /><br />
<input name="submit" type="submit" value="Сохранить" />
</form>';
nav('?act=main');
}
break;
case 'exit':
setcookie('ulogin', '', time() - 86400*31, '/');
setcookie('upass', '', time() - 86400*31, '/');
header('location: ./');
break;
}
require_once 'tail.php';
?>