Основной файл администраторской части это index.php. Приступим к описанию данного файла.
Сам файл выглядит следующим образом:
<?php
session_start();
if (isset($_GET['ld'])) { $ld = $_GET['ld']; if ($ld == '') { unset($ld);}}
if (isset($_GET['del_id'])) { $del_id = $_GET['del_id']; if ($del_id == '') { unset($del_id);}}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf8" />
<meta name="author" content="Interline" />
<link href="../style.css" rel="stylesheet" type="text/css" />
<script language="javascript" src="../jquery-1.5.1.min.js"></script>
<title>Админка</title>
</head>
<body>
<?
if (empty($_SESSION['id']))
{
require_once("au_admin_form.php");
}
if (isset($_SESSION['id']) AND isset($_SESSION['login']))
{
require_once("menu.php");
}
if (isset($_SESSION['id']) AND isset($ld) AND ($ld==add_u))
{
require_once("add_user_form.php");
}
if (isset($_SESSION['id']) AND isset($ld) AND ($ld==list_u))
{
require_once("user_list.php");
}
if (isset($del_id))
{
require_once("db.php");
mysql_query ("DELETE FROM users WHERE id='$del_id'");
echo "Пользователь удален";
}
?>
</body>
</html>
Разбираем скрипт:
Первым делом выполняем session_start();
Эти два действия пока пропустим, они нам понадобятся немного позже:
if (isset($_GET['ld'])) { $ld = $_GET['ld']; if ($ld == '') { unset($ld);}}
if (isset($_GET['del_id'])) { $del_id = $_GET['del_id']; if ($del_id == '') { unset($del_id);}}
Проверяет авторизирован ли администратор:
if (empty($_SESSION['id']))
{
require_once("au_admin_form.php");
}
Если администратор не авторизирован, то отображаем форму для ввода логина и пароля, которая находится в файле au_admin_form.php - в той же директории, что и index.php.
Форма имеет следующий вид:
Рис.1. Форма авторизации администратора.
Как мы видим, форма для пользователей и администраторов ничем внешне не отличаются, хотя при желании мы можем изменить ее внешний вид.
Также HTML код формы для администраторов схож с формой для пользователей, но за одним исключением: форма для администраторов передает данные в файл 'reg_admin.php'.
<form action='reg_admin.php' method='post' enctype=multipart/form-data id="au_admin">
<fieldset>
<legend>Введите логин и пароль</legend>
<p><label for="login">Логин</label> <input type="text" id="login" name="login" /></p>
<p><label for="password">Пароль</label> <input type="password" id="password" name="password" /><br /></p>
<p class="submit"><input type="submit" value="Отправить" /></p>
</fieldset>
</form>
Какая разница между файлами авторизации для пользователей и администраторов читайте в следующей статье (4/9).
После того, как администратор ввел свои данные в форму, они были обработаны, была создана сессия (и администратор вновь перенаправляется на страницу index.php).
В этом случае первая проверка не сработает, так как у нас создана сессия и в глобальный массив $_SESSION добавлены $_SESSION['id'], $_SESSION['login']. Поэтому сработает следующая:
if (isset($_SESSION['id']) AND isset($_SESSION['login']))
{
require_once("menu.php");
}
Будет подключен файл "menu.php".
Рис.2. Меню администратора.
<div id="tabs">
<ul>
<li><a href="?ld=add_u" id="l_add_user">Добавить пользователя</a></li>
<li><a href="?ld=list_u" id="l_user_list">Список пользователей</a></li>
<li><a href='exit.php'>Выход</a></li>
</ul>
</div>
<br />
В меню администратора есть следующие возможности: добавление пользователя, просмотр списка пользователей, выход из администраторской части.
Евгений Рудченко специально для ASP24.


