include $_SERVER['DOCUMENT_ROOT'].'/chat/admin/accessdenied.html.php';
exit();
}
?>
<html lang="en">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="/style.css" />
<title>Панель управления</title>
</head>
<body class="chatbody">
<?php include_once $_SERVER['DOCUMENT_ROOT'] . '/chat/admin/button_logout.html'; ?>
<div class="wrap_apanel">
<div class="blockapanel">
<h2>Панель управления</h2>
<ul>
<li><a href="/chat/admin/comment.php" class="apanel">Комментарии</a></li>
<li><a href="/chat/admin/users/index.php" class="apanel">Пользователи</a></li>
</ul>
</div>
<p><a href="/" class="apreturn">Вернуться на главную страницу</a></p>
</div>
</body>
</html>
В самом начале файла проверяем данные пользователя, если пользователь авторизован и имеет статус «admin» или «user» открываем страницу, если нет, выводим страницу запрета доступа accessdenied.html.php. Если пользователь не авторизован, выводим форму авторизации form_login.php.
На самой странице панели управления выводим:
• форму выхода пользователя из сессии button_logout.html с кнопкой «Выйти»;
• ссылки для перехода на страницы «Комментарии», «Пользователи»;
• ссылку «Вернуться на главную страницу» для перехода на начальную страницу сайта.
9.1.2 Управление доступом
Для управления доступом не будем изобретать велосипед, а воспользуемся уже проверенным решением из шуточной CMS [1] и создаем файл «access.php» листинг которого за некоторыми доработками аналогичен, приведенному в данной книге.
В исходный листинг [1.C.233] добавлены проверка активации и установление «id» пользователя.
Листинг 13. access.php Путь: /news/chat/admin/access.php
<?php
error_reporting(E_ALL);
/* Проверяем пароль и логин стартуем или удаляем сессию */
/* Функция возвращает true или false в зависимости от результатов проверки */
function userIsLoggedIn()
{
if (isset($_POST['action']) and $_POST['action'] == 'out')
{
if (!isset($_POST['login']) or $_POST['login'] == '' or
!isset($_POST['password']) or $_POST['password'] == '')
{
$GLOBALS['loginError'] = 'Пожалуйста, заполните оба поля';
return FALSE;
}
$password = md5($_POST['password'] . 'swl');
if (databaseContainsAuthor($_POST['login'], $password))
{