ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

Разработка отдельных фрагментов сайтов, консультации по вопросам верстки веб-страниц и веб-программирования.

Реализация интерфейса администрирования. Вход в систему

Вход в систему

Планируемая в этом проекте система администрирования достаточно проста. Она сводится к построению веб-интерфейса взаимодействующего с базой данных, в котором применяется входная аутентификация.

Интерфейс администрирования требует, чтобы пользователь входил в систему через сценарий 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();
?>
Сценарий login.php состоит из стандартной формы, которая выводится с помощью функции display_login_form() из библиотеки output_fns.php.
<?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

}
?>