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-дизайне.

 


Информация о работе «Разработка интернет-приложения для организации электронной доски объявлений»
Раздел: Информатика, программирование
Количество знаков с пробелами: 48444
Количество таблиц: 8
Количество изображений: 12

Похожие работы

Скачать
246720
1
5

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

Скачать
177159
29
21

... в широкую практику разработки программ объектно-ориентированного программирования, впитавшего в себя идеи структурного и модульного программирования, структурное программирование стало фактом истории информатики. Билет № 9 Текстовый редактор, назначение и основные функции. Для работы с текстами на компьютере используются программные средства, называемые текстовыми редакторами или текстовыми ...

Скачать
36414
0
0

... (B2G) –- взаимодействие бизнеса и государственных структур по правительственным закупкам, не требующих проведения конкурсов (см. [17],[19]). Структура электронного бизнеса (ЭБ) К основным областям деловой активности в России, связанным с Интернетом, относятся следующие:  предоставление- доступа к Интернету;  создание информационных ресурсов, их размещение и- организация доступа к ним;   ...

Скачать
16487
0
0

... . В соответствии с российским законодательством, регистрация интернет - издания добровольная и необязательная. Такую позицию Россвязьохранкультура указала в своём письме о регистрации сайтов как СМИ. Поэтому действительно интернет-СМИ является только часть новостных ресурсов. Сайты, на которых публикуются новости, но которые не имеют регистрации Федеральной службы по надзору за соблюдением ...

0 комментариев


Наверх