Веб-проект реализации задачи аутентификации и персонализации посетителей

В этом проекте будет реализована регистрация пользователей на веб-сайте. После решения упомянутой задачи станет возможным отслеживание интересов посетителей и отображение для них соответствующим образом настроенного содержимого. Такой подход носит название персонализации.

Данный проект дает пользователям возможность создать в веб-среде набор закладок (bookmarks) и предложить другие ссылки, которые могут заинтересовать посетителей, исходя из их поведения в предыдущих сеансах. В более обобщенном виде персонализация пользователей может применяться практически в любом веб-приложении, чтобы отобразить для них желаемое содержимое в предпочитаемом формате.

В этом, а также в последующих проектах мы начнем с обзора набора требований, подобных тем, что выдвигает закзчик сайта. Мы преобразуем эти требования в набор компонентов решения, построим схему их объединения, а затем реализуем каждый компонент.

В этом проекте будут реализованы следующие функциональные возможности:

Задачи аутентификации и персонализации

В рамках этого проекта задача сводится к созданию прототипа интерактивной системы закладок, которую назовем ABCMemori и подобную, но более функционально ограниченную, системе memori.ru по адресу http://memori.ru/

Наша система должна предоставлять пользователям возможность входить в нее и хранить персональные закладки, а также получать рекомендации относительно других сайтов, подобранных на основе предпочтений посетителей.

Требования к системе можно разбить на три основных группы.

Компоненты решения

Теперь, когда требования к системе определены, можно приступить к разработке решения и его компонентов. Рассмотрим возможные решения для каждого из трех главных требований, перечисленных ранее.

Идентификация и персонализация пользователей

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

Если необходимо предоставить пользователям возможность входить в систему, указывая свое имя и пароль, возникает потребность в следующих компонентах:

Мы создадим функции для реализации всех перечисленных возможностей. Большинство функций могут повторно использоваться без изменений либо с небольшими изменениями в других проектах.

Хранение закладок

Для хранения закладок пользователя требуется создать некоторое пространство в базе данных MySQL. Необходимо реализовать следующие возможности:

Рекомендация закладок

Для рекомендации закладок пользователю можно применять различные подходы. Можно выбирать наиболее популярные либо самые популярные в конкретной области закладки. В данном проекте будет реализована система рекомендаций, основанная на принципе "подобия образа мышления". Эта система выполняет поиск пользователей, имеющих ту же закладку, что и у вошедшего в систему клиента, и предлагает ему остальные закладки этих пользователей. Чтобы не рекомендовать закладки, соответствующие индивидуальным особенностям, выбираются лишь те из них, которые хранятся более чем у одного пользователя.

Для реализации упомянутых возможностей можно написать еще одну функцию.

Обзор решения

После составления ряда эскизов получилась блок-схема, показанная на рисунке.

Эта диаграмма показывает возможные логические пути в систему ABCMemory

Для каждого элемента диаграммы будет построен модуль. Некоторые из них потребуют одного сценария, а другие — двух. Кроме того, будут установлены библиотеки функций для:

Кроме того, потребуется создать серверную базу данных для системы.

Проект будет рассматриваться очень подробно. Перечень подключаемых файлов приводится в таблице.

Таблица. Файлы приложения ABCMemori

Имя файла Описание
abcmemory.sql SQL-операторы для создания базы данных ABCMemoriy
login.php Титульная страница система с формой входа в систему
register_form.php Форма регистрации пользователей в системе
register_new.php Сценарий обработки новыхрегистрационных записей
forgot_form.php Форма, заполняемая пользователями, забывшими пароль
forgot_passwd.php Сценарий переустановки забытых паролей
member.php Главная страница пользователя с предоятавлением всех текущих закладок
add_bm_form.php Форма для добавления новых закладок
add_bms.php Сценарий добавления новых закладок в базу данных
delete_bms.php Сценарий удаления выбранных закладок из списка, связанного с конкретным пользователем
recommend.php Сценарий выдачи рекомендаций, основынных на пользователях со сходными интересами
chenge_passwd_form.php Форма, заполняемая пользователями, желающими сменить пароль
chenge_passwd.php Сценарий смены пароля в базе данных
logout.php Сценарий выхода пользователя из приложения
bookmark_fns.php Набор подключаемых модулей для приложения
data_valid_fns.php Функция проверки допустимости данных вводимых пользователем
db_fns.php Функция для подключения к базе данных
user_auth_fns.php Функции аутентификации пользователей
url_fns.php Функции добавления и удаления закладок, а также выработки рекомендаций
output_fns.php Функции форматирующие вывод в виде HTML-кода
abcmemori.css Файл таблицы стилей
images Папка с рисунками

Начнем с реализации базы данных MySQL, поскольку она необходима для осуществления почти всех функциональных возможностей приложения.

Затем мы приступим к исследованию кода в порядке его написания. Начнем с титульной страницы, перейдем к аутентификации пользователей, хранению и извлечению закладок, и завершим выработкой рекомендаций. Эта последовательность вполне логична — определяются зависимости и создаются в первую очередь элементы, которые впоследствии понадобятся для других модулей.

Примечание. Чтобы код проекта работал в соответствии с описанием, необходимо включить режим magic quotes. Если это не выполнено, ко вводимым данным в базу данных MySQL потребуется применить функцию addslashesl), а к извлекаемым данным — функцию stripslashesl). Этот режим уже использовался в качестве удобного сокращения.




  • Другие |
назадвверхвперед
Rambler's Top100