на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Разработка интернет-приложения для организации электронной доски объявлений
p align="left">В случае невыполнения условий проверок объявление в БД не заносится.

10) Алгоритм реализации механизма подписки на почтовую рассылку с запросом подтверждающего кода.

У авторизованного пользователя запрашивается почтовый адрес, причём происходит проверка на синтаксис (наличие знака «@» и «.»). Если в таблице MAIL в поле user_id уже содержится идентификатор данного пользователя и значение поля activation не равно «1» или «0», что указывает на то что рассылка на этот адрес находится в процессе подтверждения, выводится соответствующее сообщение и форма запроса подтверждающего кода, процесс регистрации прерывается (если значение поля activation равно «1» или «0», что указывает на то что у пользователя уже есть активированный почтовый адрес, процесс регистрации прерывается без вывода каких-либо форм). Иначе случайным образом генерируется число, которое заносится в таблицу MAIL поля activation. Это же число высылается на указанный почтовый адрес. В поле time заносится срок жизни записи, по истечению которого неподтвержденная рассылка будет удалена из таблицы.

При подтверждении рассылки, код, вводимый пользователем в форму запроса сравнивается со значением поля activation, в случае совпадения это значение заменяется на «1», что означает активацию рассылки. Пользователь может временно приостановить рассылку, при этом значение поля устанавливается в «0».

11) Алгоритм управления подпиской на подразделы каталога доски объявлений.

В поля mail_id и topic_id таблицы MAILSUB новой записи заносятся соответствующие значения идентификатора записи подписчика в таблице MAIL, а также подраздела каталога, на который оформляется подписка. В случае если подписка уже оформлена, новая запись не создаётся. Если пользователь хочет отписаться от какого-либо подраздела, запись удаляется.

12) Алгоритм почтовой рассылки объявлений.

Для того чтобы получить список почтовых адресов, на которые оформлена почтовая рассылка для текущего подраздела каталога доски объявлений, нужно из таблицы MAIL выбрать значения поля email тех записей, в которых значение поля id совпадает со значением поля mail_id таблицы MAILSUB и значение поля topic_id равно идентификатору текущего подраздела каталога. При этом значение поля activation таблицы MAIL должно быть равно «1».

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

Блок-схемы основных алгоритмов приведены на рисунке 4.1.

Рис. 4.1 - Блок-схемы алгоритмов регистрации и авторизации

5. Программная реализация

Для реализации проекта был выбран широко распространенный на сегодняшний день язык PHP - язык описания сценариев, которые встраиваются непосредственно в гипертекстовые HTML-файлы и исполняются на Web-сервере, что в значительной степени упрощает написание готовых проектов, сокращает время разработки структуры визуального отображения выводимой информации. Программа на PHP заключается в теги <?, ?>, а интерпретатор обрабатывает команды между этой парой тегов и формирует окончательный результат, передающийся на локальную машину. Самая значимая возможность языка РНР по сравнению с другими языками, например, Perl, - высокий уровень интеграции с базами данных. Создание и отладка PHP-скриптов значительно проще, чем отладка и создание скриптов на других языках. Язык скриптов напоминает своим синтаксисом язык C. PHP предназначен для платформ Win32, Linux и представляет собой отдельную CGI-программу, которая используется в качестве модуля к Web-серверау под управлением IIS или Apache. В настоящее время выпущена четвертая версия PHP с улучшенными производительностью и возможностями, именно эта версия языка (PHP 4.3.0) была выбрана автором данного проекта в процессе написания и тестирования программы, хотя написанные модули будут полностью совместимы и с предыдущей третьей версией PHP.

PHP поддерживает множество реляционных баз данных, в том числе Informix, Oracle, Sybase и др. Тем не менее немало скриптов на PHP используют сравнительно небольшую и компактную СУБД MySQL, совместимую со стандартом ANSI SQL и обеспечивающую высокую производительность. MySQL является реляционной СУБД и в SQL-запросах позволяет связывать таблицы по общим полям, поддерживает индексы, автоинкрементные поля, а также множество функций для преобразования данных. К MySQL разработаны самые разнообразные надстройки, предоставляющие графический или Web-интерфейс для манипуляции данными - создания таблиц, добавления и редактирования в них записей, отбора нужных строк. Например, с помощью системы phpMyAdmin, написанной целиком на PHP, можно подготовить структуру таблиц, ввести начальные значения вручную или из текстового файла и проверить работоспособность SQL-запросов, использующихся в проекте.

Учитывая то, что существует множество провайдеров, предоставляющих хостинг со связкой PHP/MySQL, выбранный набор программных средств способствует практическому воплощению готового проекта в жизнь.

Работа с базой данных

Последовательность подключения к базе данных и управления табличными данными традиционна - сначала устанавливается связь, потом выдается запрос и обрабатывается результат. Для подключения к базе данных нужны три параметра: имя хост-узла, имя пользователя и пароль. Определив эти параметры, можно установить соединение с БД при помощи функции MYSQL_CONNECT(), затем функцией MYSQL_SELECT_DB() выбирается нужная база данных (см. Приложение А). В случае ошибки соединения или выбора БД выводится соответствующее сообщение.

Для получения данных используется функция MYSQL_QUERY(), в которой указывается необходимый SQL-запрос, передаваемый MySQL.

Получить значения отдельных полей позволяет функция MYSQL_FETCH_ARRAY(), которая возвращает ассоциативный массив с данными (см. Приложение B).

Для получения количества строк в результате запроса служит функция MYSQL_NUM_ROWS(), которая используется для определения наличия в таблице той или иной записи (например, учетной записи пользователя).

Составление SQL-запросов

Чтобы начать работу с MySQL прежде всего требуется создать базу данных, с которой мы будем взаимодействовать. Это делается запросом “CREATE database имя_БД”.

Для создания таблицы используется запрос “CREATE table имя_таблицы” с перечислением полей и их типов (см. Приложение В). Для добавления новой записи в таблицу - “INSERT INTO имя_таблицы VALUES (перечисление_значений)”, для вывода данных “SELECT перечисление_полей FROM имя_таблицы WHERE условие ”.

Важной особенностью является возможность дополнения запросов следующими функциональными директивами: лимит выдаваемых строк “LIMIT”, сортировка данных в порядке убывания/возрастания значения поля “ORDER BY название_поля DESC/ASC”, подсчёт строк в запросе “COUNT (*)”.

Для редактирования значения поля используется запрос “UPDATE имя_таблицы SET имя_поля = значение поля WHERE условие”, для удаления “DELETE FROM имя_таблицы WHERE условие”. Практическая реализация вышеперечисленных запросов в коде приведена в Приложении.

Обработка данных, полученных от пользователя

Для проверки строк данных, полученных от пользователя на допустимые значения символов, используется функция ereg() и составленное соответствующим образом регулярное выражение, которым проверяется строка, передаваемая этой функции. Например, регулярное выражение “[^0-9]” эквивалентно по смыслу фразе “проверка на наличие в строке цифровых символов”. Регулярными выражениями проверяются все цифровые значения переменных, а так же строковые переменные логина, пароля и e-mail'а.

Шифрование паролей, вычисление хэш-кода символьной строки

Существует множество способов зашифровать или вычислить хэш-код какой-либо символьной строки, язык PHP предоставляет для этого целый набор функций (crypt, crc32 и др.). Поскольку мы уже ранее определились с алгоритмом MD5, будем использовать функцию md5().

Передача значений переменных между сервером к клиентом

При используемом в проекте алгоритме аутентификации необходима возможность многократной передачи значения кода сессии авторизованного пользователя между сервером (программой) и клиентом (браузером). Суть проблемы в том, чтобы отвести в определенной области памяти (на сервере или у клиента) место, где было бы возможно сохранять значение этого кода, причем это значение хранилось бы в течение требуемого периода времени. Для этой цели изобретен механизм Cookies и механизм сессий. Cookies подразумевает сохранение значений переменных на стороне клиента, механизм сессий - на стороне сервера. Для нашей задачи пригодны оба метода, но у первого есть большой недостаток, проявляющийся на практике - он заключается в том, что многие пользователи целенаправленно отключают этот режим в браузерах, в таком случае передача значений переменных становится невозможной. Сессии лишены этого недостатка, и, поскольку язык PHP предоставляет набор удобных функций для работы с сессиями, будем использовать именно этот механизм. Для начала нужно запустить сессию функцией session_start(), после чего можно устанавливать и считывать значения любых переменных: “$_SESSION["имя_переменной"] = значение_переменной”.

Особенность метода состоит в том, что PHP все же использует Cookies на стороне клиента, чтобы сохранить там значение идентификатора обратившегося к скрипту пользователя (PHPSID). Именно через этот идентификатор сервер «узнает», в какой области памяти он сохранил переменные. Однако, если у клиента выключены Cookies, PHP самостоятельно внедряет в отображаемый гипертекст дополнение ко всем ссылкам перехода строки вида

PHPSID=идентификатор_сессии, то есть при переходе пользователя по этим ссылкам значение идентификатора всё равно передается серверу и значения сохраненных переменных потеряны не будет. Именно это достоинство сессий обеспечило их повсеместное применение на средних и крупных проектах, написанных на языке PHP.

Отправка текста объявлений на потовые адреса подписчиков

Для отправки текста на e-mail в PHP служит функция mail(), в которой указывается почтовый адрес, тема сообщения и его тело. Почтовый адрес необходимо проверять на правильность синтаксиса, иначе высока вероятность взлома приложения путём ввода серверных команд удаленного доступа. Синтаксис проверяется регулярным выражением (см. Приложение J)

Формирование интерфейса

Формирование интерфейса происходит стандартным образом на языке гипертекстовой разметки HTML. Для увеличения скорости загрузки страниц каталога электронной доски объявлений весь дизайн интерфейса выполнен в текстовом виде. Автору удалось минимизировать HTML-код путем исключения избыточности (ненужных символов, HTML-тэгов, замена однотипных участков текста на вызов функции JavaScript, содержащий шаблон с этим текстом и т.п.), которая на сегодняшний день весьма распространена в Web-дизайне.

6. Описание программы

Разрабатываемое интернет-приложение предназначено для организации интерактивной многофункциональной электронной доски объявлений. Приложение устанавливается на сервере, поддерживающим выполнение PHP-скриптов не ниже третьей версии. Для работы приложения с данными необходима СУБД MySQL версии 3.23 или выше, которая в целях максимальной производительности должна быть установлена на том же сервере, что и интерпретатор языка PHP, однако это условие не является обязательным.

Для установки приложения необходимо по FTP-протоколу или любым другим образом скопировать файлы с поставляемого дистрибутива в каталог выделенного сервера, прописать название БД, логин и пароль для доступа (выдаются администратором интернет-сервера) в модуле tunes.php и запустить инсталлятор install.exe. После ввода регистрационной информации администратора электронная доска объявлений сразу же готова к работе.

Просмотр объявлений осуществляется через интуитивно-понятный WEB-интерфейс.

Для удобства пользователя, все объявления разделены на тематики, и содержатся в упорядоченном порядке в разделах каталога. Каждому объявлению соответствует тип - «спрос», «предложение», «обмен», «аренда», «прочее». Пользователь может включить фильтр на отображение объявлений только нужного ему типа.

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

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

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

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

Режим модерирования предназначен для удаления любого объявления из каталога. Любой зарегистрированный пользователь может являться модератором доски объявлений, если администратор наделит его соответствующими правами доступа.

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

Страницы: 1, 2, 3, 4



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.