Просмотр файла a.php

Размер файла: 8.65Kb
<?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&amp;l='.$ulogin.'&amp;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&amp;id='.$news['id'].'">ред</a>]<br />';
			}
		} else {
			echo 'Новостей еще нет<br />';
		}
		echo '<br /><a href="?act=add">Добавить</a></div>';
		
		navig($page, '?act=manage&amp;', $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&amp;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="&#1044;&#1086;&#1073;&#1072;&#1074;&#1080;&#1090;&#1100;" />
			</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&amp;id='.$id);
					}
				}
			} else {
				tp('Редактирование новости');
				echo '<form action="?act=edit&amp;id='.$id.'&amp;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&amp;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="&#1057;&#1086;&#1093;&#1088;&#1072;&#1085;&#1080;&#1090;&#1100;" />
			</form>';
			nav('?act=main');
		}
	break;
	
	case 'exit':
		setcookie('ulogin', '', time() - 86400*31, '/');
		setcookie('upass', '', time() - 86400*31, '/');
		header('location: ./');
	break;
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}

require_once 'tail.php';
?>