Принимаемые параметры:
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
Запись в таблице содержит идентификатор пользователя, код и время жизни сессии.