6. Описание программы
Разрабатываемое интернет-приложение предназначено для организации интерактивной многофункциональной электронной доски объявлений. Приложение устанавливается на сервере, поддерживающим выполнение PHP-скриптов не ниже третьей версии. Для работы приложения с данными необходима СУБД MySQL версии 3.23 или выше, которая в целях максимальной производительности должна быть установлена на том же сервере, что и интерпретатор языка PHP, однако это условие не является обязательным.
Для установки приложения необходимо по FTP-протоколу или любым другим образом скопировать файлы с поставляемого дистрибутива в каталог выделенного сервера, прописать название БД, логин и пароль для доступа (выдаются администратором интернет-сервера) в модуле tunes.php и запустить инсталлятор install.exe. После ввода регистрационной информации администратора электронная доска объявлений сразу же готова к работе.
Просмотр объявлений осуществляется через интуитивно-понятный WEB-интерфейс.
Для удобства пользователя, все объявления разделены на тематики, и содержатся в упорядоченном порядке в разделах каталога. Каждому объявлению соответствует тип – «спрос», «предложение», «обмен», «аренда», «прочее». Пользователь может включить фильтр на отображение объявлений только нужного ему типа.
Объявления могут добавлять только зарегистрированные пользователи. При регистрации у пользователя запрашивается логин, пароль и контактная информация. После регистрации пользователь может работать в своем аккаунте, добавлять, удалять и редактировать уже отправленные объявления, а также подписываться на почтовую рассылку новых объявлений.
Механизм подписки на почтовую рассылку имеет простой и удобный интерфейс, защищен от злоумышленников, пытающихся подписать чей-либо чужой почтовый ящик. Каждое добавленное объявление рассылается на почтовые адреса подписчиков без каких-либо искусственных ограничений и временных задержек, тем самым обеспечивая эффективность информирования.
Предусмотрен режим администрирования с возможностью редактирования основных параметров электронной доски объявлений, таких как название, число объявлений, отображаемых на одной странице, включение или выключение почтовой рассылки.
Администратор может создавать и удалять разделы и подразделы каталога доски объявлений, просматривать список зарегистрированных пользователей, а так же удалять пользователей.
Режим модерирования предназначен для удаления любого объявления из каталога. Любой зарегистрированный пользователь может являться модератором доски объявлений, если администратор наделит его соответствующими правами доступа.
Авторизация пользователей имеет простой интерфейс и основана на безопасном алгоритме аутентификации, который обеспечивает надежную защиту от взлома паролей пользователей для приложений подобного уровня.
7. Руководство программиста
Проект состоит из 10 модулей, ниже будет описан каждый из них, а также функции, которые в них используются.
1) Модуль install.php
Назначение: для первоначального создания базы данных и таблиц, необходимых для работы приложения.
Принимаемые параметры:
action – код действия (0 – вывод формы запроса логина и пароля администратора, 1 – инсталляция); login – логин администратора; password – пароль администратора.
Функции:
ok($sql,$table);
- вывод в сообщения в гипертекстовом формате о результате выполнения запроса sql в таблице table.
2) Модуль tunes.php
Назначение: содержит константы со значениями логина, пароля и имени базы данных, использующиеся для подключения к БД MySQL:
dbName – имя базы данных; hostname – имя хоста MySQL или URL удаленной базы данных; username – логин пользователя; password – пароль для доступа к БД.
3) Модуль index.php
Назначение: отображение в гипертекстовом формате подразделов и разделов каталога и объявлений с разделением на страницы.
Принимаемые параметры:
action – код действия (0 – отображение главной страницы каталога, 1 – отображение разделов каталога, 2 – отображение объявлений в текущем подразделе каталога); id – идентификатор текущего раздела или подраздела каталога; f – идентификатор фильтра сообщений (0 – фильтр выключен, 1..3 – фильтр включен на соответствующий тип; n – порядковый номер запрашиваемой страницы.
Функции:
check($value);
- возвращает 1 если строка value содержит цифровые символы, иначе 0.
catalog_options($id);
- возвращает значение параметра каталога с порядковым номером id из таблицы OPTIONS.
catalog_item_name($id);
- возвращает значение поля name из таблицы SUBJECT по заданному идентификатору подраздела id.
catalog_print();
- выводит в гипертекстовом формате дерево подразделов и разделов каталога.
message();
- выводит в гипертекстовом формате объявления текущего раздела или подраздела с применением фильтра типа сообщений.
message_catalog();
- выводит в гипертекстовом формате отображение разделов и подразделов каталога, отображаемые на заглавной странице электронной доски объявлений.
4) Модуль adduser.php
Назначение: добавление новой учетной записи пользователя.
Принимаемые параметры:
action – код действия (0 – вывод формы регистрации, 1 – добавление учетной записи); login – желаемый логин пользователя, password – желаемый пароль, contact – контактная информация о пользователе.
Функции:
check($value);
- возвращает «1» если строка value содержит цифровые символы, иначе «0».
check_enter($value)
- возвращает «1» если строка value содержит буквенно-цифровые символы, иначе «0».
check_id($id);
- возвращает значение поля topic таблицы SUBJECT по заданному порядковому номеру записи.
message_check($t);
- возвращает текст t, в котором HTML-тэги заменены на их «безопасные» эквиваленты.
user_form_add();
- выводит форму регистрации пользователя.
user_add();
- добавляет новую учетную запись пользователя в таблицу USERS.
5) Модуль enter.php
Назначение: авторизация пользователя.
Принимаемые параметры:
login – логин пользователя, password – пароль.
Функции:
check_enter($value);
- возвращает «1» если строка value содержит буквенно-цифровые символы, иначе «0».
randString($pass_len);
- возвращает строку длиной pass_len из случайно сгенерированных буквенно-цифровых символов.
6) Модуль sessions.php
Назначение: аутентификация пользователя.
Принимаемые параметры:
$_SESSION["session"] – значение кода сессии авторизованного пользователя.
Функции:
not_enter();
- делает редирект пользователя на модуль авторизации enter.php в случае невозможности аутентификации.
7) Модуль users.php
Назначение: отображение в гипертекстовом формате интерфейса аккаунта пользователя и функциональный набор средств для работы с объявлениями.
Принимаемые параметры: action – код действия, $id, $n, $i, $a;
Функции:
check($value);
- возвращает «1» если строка value содержит цифровые символы, иначе «0».
check_enter($value)
- возвращает «1» если строка value содержит буквенно-цифровые символы, иначе «0».
check_id($id);
- возвращает значение поля topic таблицы SUBJECT по заданному порядковому номеру записи.
catalog_options($id);
- возвращает значение параметра каталога с порядковым номером id из таблицы OPTIONS.
catalog_item_name($id);
- возвращает значение поля name из таблицы SUBJECT по заданному идентификатору подраздела id.
user_login($id);
- возвращает логин пользователя из таблицы USERS по заданному идентификатору id.
catalog_print();
- выводит в гипертекстовом формате дерево подразделов и разделов каталога.
message();
- выводит список объявлений текущего раздела или подраздела каталога объявлений.
catalog_list();
- выводит список разделов и подразделов каталога объявлений.
action_list();
- формирует список типов объявлений из таблицы ACTION.
message_add();
- добавление нового объявления в таблицу MESSAGES.
message_check($t);
- возвращает текст t, в котором HTML-тэги заменены на их «безопасные» эквиваленты.
message_del();
- удаление объявления из таблицы MESSAGES.
message_form_edit();
- вывод формы редактирования текста объявления.
message_edit();
- обновление текста объявления в таблице MESSAGES.
user_exit();
- закрытие пользовательской сессии и выход из аккаунта.
user_del();
- удаление учетной записи текущего пользователя.
send_mail();
- рассылка объявлений на почтовые адреса подписчиков.
8) Модуль mail.php
Назначение: отображение в гипертекстовом формате интерфейса аккаунта подписки на почтовую рассылку и необходимый функциональный набор средств для работы.
Принимаемые параметры: action – код действия (1 – добавление подписки на текущий подраздел каталога, 2 – удаление подписки от текущего раздела, 3 – включение почтовой рассылки, 4 – удаление подписки, 5 – регистрация почтового адреса, 6 – активация рассылки подтверждающим кодом, 7 – удаление почтового адреса из рассылки); id – текущий подраздел каталога; еmail – почовый адрес подписчика.
Функции:
check($value);
- возвращает «1» если строка value содержит буквенно-цифровые символы, иначе «0».
check_id($id);
- возвращает значение поля topic таблицы SUBJECT по заданному порядковому номеру записи.
check_mail($mail);
- возвращает «1» если строка mail содержит правильный формат записи e-mail адресов, иначе «0».
catalog_options($id);
- возвращает значение параметра каталога с порядковым номером id из таблицы OPTIONS.
message_catalog();
- выводит в гипертекстовом формате отображение разделов и подразделов каталога, отображаемые на заглавной странице электронной доски объявлений.
topic_add();
- добавление подписки на почтовую рассылку объявлений текущего подраздела каталога.
topic_del();
- удаление подписки на почтовую рассылку объявлений текущего подраздела каталога.
sendmail_enable();
- включение или выключение рассылки на данный e-mail.
topic_del_all();
- отписка почтового адреса от всех подразделов.
user_reg();
- регистрация почтового адреса.
user_reg_activation();
- активация почтовой подписки.
user_form_reg();
- вывод формы регистрации почтового адреса.
activation_wait();
- вывод формы с запросом на ввод активирующего кода.
user_del();
- удаление почтового адреса из рассылки.
9) Модуль moderator.php
Назначение: отображение в гипертекстовом формате интерфейса аккаунта модератора и функциональный набор средств для работы с каталогом объявлений и удалением сообщений.
Принимаемые параметры:
action – код действия (0 – отображение главной страницы каталога, 1 – отображение разделов каталога, 2 – отображение объявлений в текущем подразделе каталога); id – идентификатор текущего раздела или подраздела каталога; n – порядковый номер запрашиваемой страницы.
Функции:
check($value);
- возвращает «1» если строка value содержит цифровые символы, иначе «0».
catalog_options($id);
- возвращает значение параметра каталога с порядковым номером id из таблицы OPTIONS.
catalog_item_name($id);
- возвращает значение поля name из таблицы SUBJECT по заданному идентификатору подраздела id.
catalog_print();
- выводит в гипертекстовом формате дерево подразделов и разделов каталога.
message();
- выводит в гипертекстовом формате объявления текущего раздела или подраздела.
10) Модуль admin.php
Назначение: отображение в гипертекстовом формате интерфейса аккаунта администратора и функциональный набор средств для работы с пользователями, основными параметрами и разделами каталога.
Принимаемые параметры:
action – код действия (1 – обновляет значение основных параметров каталога в таблице OPTIONS, 2 – создает новый раздел в каталоге с идентификатором id, 3 – создает новый подраздел с идентификатором id, 4 – удаляет раздел или подраздел с идентификатором id, 5 – удаляет пользователя с логином name, 6 – снимает права модерирования с логина name, 7 – назначает права модерирования на логин name, 8 – выводит список зарегистрированных пользователей в гипертекстовом формате)
Функции:
check($value);
- возвращает «1» если строка value содержит цифровые символы, иначе «0».
refresh();
- делает редирект пользователя на модуль admin.php.
8. Контрольный пример
Интерфейс приложения выглядит следующим образом:
Рис. 8.1 - Вывод разделов и подразделов основного каталога электронной доски объявлений
Рис. 8.2 - Вывод всех объявлений из раздела «Компьютеры»
Рис. 8.3 - Вывод объявлений с применением фильтра на тип «Предложение»
Рассмотрим процесс регистрации нового пользователя, например belka:
Рис. 8.4 - Регистрация нового пользователя belka
Содержимое таблицы пользователей USERS до регистрации:
Рис. 8.5 - Дамп данных таблицы USERS до регистрации
Содержимое таблицы после регистрации:
Рис. 8.6 - Дамп данных таблицы USERS после регистрации
Последняя строка в таблице содержит добавленную учетную запись:
идентификатор, хэш-код пароля, контактную информацию и права доступа пользователя.
Рассмотрим процесс авторизации зарегистрированного пользователя belka:
Рис. 8.7 - Авторизация пользователя
Содержимое таблицы сессий SESSIONS после авторизации пользователя:
Рис. 8.8 - Дамп данных таблицы SESSIONS
Запись в таблице содержит идентификатор пользователя, код и время жизни сессии.
После успешной аутентификации пользователь продолжает работу в своем аккаунте:
Рис. 8.9 - Аккаунт пользователя
Рассмотрим пример добавления нового объявления:
Рис. 8.10 - Добавление нового объявления: выбор подраздела каталога
Заключение
Задача, поставленная на бакалаврскую работу, была успешно выполнена. На примере электронной доски объявлений было разработано интерактивное интернет-приложение, сочетающее в себе работу с базой данных MySQL, практическую реализацию механизма регистрации, авторизации пользователей, основные принципы подписки на почтовую рассылку. Также в работе был разработан и применен алгоритм аутентификации, который обеспечивает надежную защиту от взлома паролей пользователей для приложений подобного уровня.
Взаимодействие приложения с пользователем было выполнено в виде простого и интуитивно-понятного WEB-интерфейса.
Данный проект функционирует в сети интернет по адресу http://members.lycos.co.uk/ngtubbs.
В качестве дальнейшего улучшения и расширения функциональности проекта можно отнести добавление режима предварительного модерирования сообщений, алгоритма защиты от прямого перебора паролей пользователей с помощью учета и блокирования IP-адресов, возможность ведения логов, скриптов отображения расширенной статистики, модуля резервного копирования данных.
Список литературы
1. Д.В. Котеров. Самоучитель PHP 4. Питер 2000 г.
2. Р. Курепин. Учебный курс по программированию на PHP.
3. Л. Ульман. Основы программирования на РНР.
4. PHP Manual.
5. M. Kabir. Secure PHP Development.
... , изменяя представление о мире, обязывают повышать ответственность медицины перед обществом. В данной работе рассматривался процесс создания интернет-ресурса для системы дистанционного образования по курсу «Медицинская информатика». В работе приведено обоснование необходимости в применении средств дистанционного обучения для сотрудников медучреждений Тульской области, предложена структура ...
... в широкую практику разработки программ объектно-ориентированного программирования, впитавшего в себя идеи структурного и модульного программирования, структурное программирование стало фактом истории информатики. Билет № 9 Текстовый редактор, назначение и основные функции. Для работы с текстами на компьютере используются программные средства, называемые текстовыми редакторами или текстовыми ...
... (B2G) –- взаимодействие бизнеса и государственных структур по правительственным закупкам, не требующих проведения конкурсов (см. [17],[19]). Структура электронного бизнеса (ЭБ) К основным областям деловой активности в России, связанным с Интернетом, относятся следующие: предоставление- доступа к Интернету; создание информационных ресурсов, их размещение и- организация доступа к ним; ...
... . В соответствии с российским законодательством, регистрация интернет - издания добровольная и необязательная. Такую позицию Россвязьохранкультура указала в своём письме о регистрации сайтов как СМИ. Поэтому действительно интернет-СМИ является только часть новостных ресурсов. Сайты, на которых публикуются новости, но которые не имеют регистрации Федеральной службы по надзору за соблюдением ...
0 комментариев