Планируемая в этом проекте система администрирования достаточно проста. Она сводится к построению веб-интерфейса взаимодействующего с базой данных, в котором применяется входная аутентификация.
Интерфейс администрирования требует, чтобы пользователь входил в систему через сценарий login.php, который будет выводить меню администрирования с помощью сценария admin.php.
Страница входа в систему
login.php — сценарий входа в систему администрирования
<?php
require_once('book_sc_fns.php');
$pagename = "Администрирование";
$keywords= "";
$description="Интернет-магазин ABC-Book. Книги традиционные и на электронных носителях";
do_html_header($pagename, $keywords, $description);
echo "<section class=blok>";
echo "<div class=col1>";
echo "<header>";
echo "<h5>Категория книг</h5>";
echo "</header>";
echo "<nav>";
// Извлечь категории из базы данных
$cat_array = get_categories();
display_categories($cat_array);
echo "</nav>";
echo "</div>";
echo "<div class=col2>";
echo "<header>";
echo "<h2>$pagename</h2>";
echo "</header>";
echo "<div class=login>";
display_login_form
();echo "</div>";
echo "</div>";
echo"</section>";
do_html_footer();
?>
<?php
function display_login_form
(){
// Выводит форму, запрашивающую имя пользователя и пароль
?>
<form method='post' action="admin.php">
<table>
<tr>
<td>Имя пользователя:</td>
<td><input type='text' name='username'></td></tr>
<tr>
<td>Пароль:</td>
<td><input type='password' name='passwd'></td></tr>
<tr>
<td> </td>
<td>
<input type='submit' value="Войти">
</td>
</tr>
</table></form>
<?php
}
?>
Данные формы обрабатываются сценарием admin.php. Если логин и пароль введенные пользователем совпадают, то вы попадете на страницу Администрирование, которая предоставит доступ к набору функций администрирования.
Страница Администрирование
admin.php — сценарий выполняет аутентификацию администратора и предоставляет ему доступ к функциям администрирования
<?php
// Включить библиотеки функций для этого приложения
require_once('book_sc_fns.php');
session_start();
if ($_POST['username'] && $_POST['passwd'])
// Пользователь только что попытался войти в систему
{
$username = $_POST['username'];
$passwd = $_POST['passwd'];
if (login($username, $passwd))
{
// Если пользователь записан в базе данных, зарегистрировать его идентификатор
$_SESSION['admin_user'] = $username;
}
else
{
// Неудачный вход в систему
do_html_header('Проблема:');
$pagename = "Добавление новой категории";
$keywords= "";
$description="Интернет-магазин ABC-Book. Книги традиционные и на электронных носителях";
do_html_header($pagename, $keywords, $description);
echo "<section class=blok>";
echo "<div class=col1>";
echo "<header>";
echo "<h5>Категория книг</h5>";
echo "</header>";
echo "<nav>";
// Извлечь категории из базы данных
$cat_array = get_categories();
display_categories($cat_array);
echo "</nav>";
echo "</div>";
echo "<div class=col2>";
echo "<header>";
echo "<h2>$pagename</h2>";
echo "</header>";
echo "<article>";
echo 'Вход в систему невозможен.
Для просмотра этой страница необходимо войти в систему.';
do_html_url('login.php', 'Вход');
do_html_footer();
exit;
}
}
$pagename = "Администрирование";
$keywords= "";
$description="Интернет-магазин ABC-Book. Книги традиционные и на электронных носителях";
do_html_header($pagename, $keywords, $description);
echo "<section class=blok>";
echo "<div class=col1>";
echo "<header>";
echo "<h5>Меню администратора</h5>";
echo "</header>";
echo "<nav>";
if (check_admin_user())
display_admin_menu();
else
echo 'У вас нет прав для доступа на страницу администрирования.';
echo "</nav>";
echo "</div>";
echo "<div class=col2>";
echo "<header>";
echo "<h2>$pagename</h2>";
echo "</header>";
echo "<article>";
echo "</article>";
echo "</div>";
echo"</section>";
do_html_footer();
?>
Идентификация пользователя-администратора после входа в систему осуществляется в через переменную сеанса admin_user и функцию check_admin_user(). Эта и другие функции, используемые сценариями администрирования, содержатся в библиотеке user_auth_fns.php.
login() — функция проверяет, записаны ли в базе данных переданные имя пользователя и пароль
<?php
function login($username, $password)
// Проверяет, записаны ли в базе данных переданные имя пользователя и пароль.
// Если это так, возвращает значение true, в противном случае -- false.
{
// Подключиться к базе данных
$conn = db_connect();
if (!$conn)
return 0;
// Проверить уникальность имени пользователя
$result = $conn->query("select * from admin
where username='$username'
and password = sha1('$password')");
if (!$result)
return 0;
if ($result->num_rows>0)
return 1;
else
return 0;
}
?>
Если данные введенные пользователем соответствуют данным базы данных, то пользователь получает доступ к меню администрирования.
Функция check_admin_user() — из библиотеки user_auth_fns.php, проверяет, вошел ли посетитель в систему, и уведомляет, если нет
<?php
function check_admin_user()
// Проверяет, вошел ли посетитель, и уведомляет, если нет
{
if (isset($_SESSION['admin_user']))
return true;
else
return false;
}
?>
Мы не рассматриваем аутентификацию пользоватетелей более подробно, поскольку этот вопрос освящен в разделе Реализация задачи аутентификации и персонализации посетителей в сайте социальных закладок.
display_admin_menu() — функция из библиотеки output_fns.php, выводящая меню администрирования
<?php
function display_admin_menu()
{
?>
<ul>
<li><a href="index.php">Перейти на основной сайт</a></li>
<li><a href="insert_category_form.php">Добавить новую категорию</a></li>
<li><a href="insert_book_form.php">Добавить новую книгу</a></li>
<li><a href="change_password_form.php">Изменить пароль</a></li>
</ul>
<?php
}
?>
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться