Основные структурные единицы простейшей ИС

Любая информационная система выполняет следующие функции:

1.   Авторизация введенных данных о пользователе. После авторизации каждый каждая страничка должна содержать ФИО «залогиневшегося» пользователя

2.   Ввод данных от пользователя

3.   Редактирование введенных данных

4.   Просмотр введенных данных

Рассмотрим простейшую систему, состоящую из 4-х основных модулей:

1.   Страница ввода идентификационных данных (логин/пароль)

2.   Главное меню

3.   Страница ввода/редактирования данных

4.   Просмотр введенных данных

Функциональная схема работы:

Практическая реализация

В качестве примера для реализации можно взять телефонный справочник.

База данных системы должна включать, как минимум, следующую информацию:

  1. Фамилия, имя, отчество.
  2. Телефон.
  3. Адрес проживания.

Работа системы начинается со страницы «ввод логина/пароля». В случае удачной аутентификации пользователь попадает на «основное меню», из которого он может ввести/поменять/просмотреть данные или выйти из системы. Переадресация на другую страницу выполняется с помощью команды протокола HTTP, реализуемую через:

print header («Location: login.php»);

exit;

Данная команда должна идти первой из выводимого на поток вывода (до тега <html>), иначе переадресации не случится.

Требование к безопасности: «неавторизованные» пользователи не должны видеть ни одной странички, кроме «ввод логина/пароля». В случае, если «неавторизованный» пользователь пытается вызвать любую страницу, система должна адресовать его на страницу «ввод логина/пароля».

Простейший пример реализации механизма аутентификации.

Создаются две функции:

get_user_id($login, $password); — в случае успешной проверки возвращает идентификатор пользователя, в случае неудачи – возвращает –1.

get_correct_login($user_id); - проверяет корректность идентификации. В случае неудачи переадрессует на страницу «ввод логина/пароля».

Файл «authlib.inc»

<?php

$passwd[“Ivanov”][“id”] = 1289;

$passwd[“Ivanov”][“password”] = “pass1”;

$passwd[“Petrov”][“id”] = 1423;

$passwd[“Petrov”][“password”] = “table”;

$passwd[“Sidorov”][“id”] = 4598;

$passwd[“Sidorov”][“password”] = “nothing”;

function get_user_id($login, $password) {

GLOBAL $passwd;

if ($passwd[$login][“password”] == $password) {

return $passwd[$login][“id”];

} else {

return –1;

}

}

function get_correct_login($user_id) {

GLOBAL $passwd;

return in_array($user_id, $passwd);

}

?>

После чего можно использовать эту библиотеку в страницах командой

include(“authlib.inc”);

После чего нужно идентифицировать пользователя:

$id = get_user_id($login, $password);

if ($id == -1) {

print header («Location: login.php»);

exit;

}

Для передачи параметров между страницами в формах испльзуется тэг

<INPUT type=”HIDDEN”>. Данный тег не отображается на форме визуально и предназначен для передачи скрытых параметров, принцип передачи – как у <INPUT type=”TEXT”>. Пример передачи идентификатора пользователя:

<INPUT type=”HIDDEN” name=”user_id” value=”<?php print $user_id; ?>”>

После чего для организации безопасности каждый файл можно начинать со строки:

$id = get_correct_login($user_id);

if ($id == -1) {

print header («Location: login.php»);

exit;

}

Рубрика Информационные технологии. Добавьте постоянную ссылку на эту страницу в закладки.