Главная
страница 1
Оглавление


Введение 10

1 Исследование предметной области 11

2 Проектирование системы 24

3 Разработка системы 38

4 Введение системы в эксплуатацию 46

Заключение 52

Список использованных источников 53

Приложение А 54

Приложение Б 57

Приложение В 59

Приложение Г 59

Приложение Д 65




Введение

Блог (англ. blog, от web log – интернет-журнал событий, интернет-дневник, онлайн-дневник) – веб-сайт, основное содержимое которого – регулярно добавляемые записи (посты), содержащие текст, изображения или мультимедиа. Для блогов характерны недлинные записи временной значимости, отсортированные в обратном хронологическом порядке (последняя запись сверху). Отличия блога от традиционного дневника обусловливаются средой: блоги обычно публичны и предполагают сторонних читателей, которые могут вступить в публичную полемику с автором (в комментарии к блогозаписи или своих блогах).

Первым блогом считается страница Тима Бернерса-Ли, где он, начиная с 1992 г., публиковал новости. Более широкое распространение блоги получили с 1996 г. В августе 1999 г. компьютерная компания Pyra Labs из Сан-Франциско открыла сайт Blogger.com, который стал первой бесплатной блоговой службой.

Сетевые дневники приобретают все большую популярность. Уже начинают активно обсуждать, кто же влиятельнее: СМИ или блоги. Они постепенно входят в нашу жизнь – например, в Самаре по телеканалу «Терра» выходит еженедельная передача «Блогосфера» с обзором дневников самарских блоггеров.

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

1Исследование предметной области




1.1Классификация блогов

Блоги можно классифицировать по следующим критериям:


По авторству:

  • личный (персональный, авторский, частный) блог – ведётся одним лицом (как правило, его владельцем);

  • коллективный или социальный блог – ведётся группой лиц по правилам, определяемым владельцем и модераторами;

  • корпоративный блог – ведётся сотрудниками одной организации.

По тематической направленности:

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


  • политика – блоги, посвященные политике. Обычно политические блоги ведут политические лидеры, представители политических партий и политических объединений, политологи;

  • быт – блоги, в которых затрагиваются обычно вопросы взаимоотношений между людьми, психологии, ведения домашнего хозяйства – всего того, что связано с понятиями «быт», «личная жизнь»;

  • путешествия – блоги, в которых авторы делятся своими впечатлениями от поездок, дают советы, как вести себя в той или иной стране, рассказывают про традиции и обычаи других народов;

  • образование – блоги, посвященные теме образования. Часто это блоги определенных учебных заведений, в которых участники обсуждают процесс обучения и другие темы в образовании;

  • мода – блоги, в которых обсуждаются новинки в мире моды, тренды, модные показы. Здесь можно прочитать мнения профессионалов, советы стилистов и людей, не равнодушных к моде;

  • музыка – блоги, в которых авторы выражают свои музыкальные предпочтения, обсуждают новинки в мире музыки. Музыкальные блоги могут быть посвящены определенному музыкальному направлению, а могут освещать различные музыкальные жанры и стили;

  • информационно аналитический – блоги, содержащие актуальные материалы и анализирующие эти материалы;

  • спорт – блоги, посвященные освещению спортивных событий и смежных с ними тем.

По наличию/виду мультимедиа:



  • текстовый блог – основное содержание составляют тексты;

  • фотоблог – основное содержание составляют фотографии;

  • артблог – основное содержание составляют рисунки автора блога;

  • музыкальный блог – основное содержание составляет музыка;

  • подкаст и блогкастинг – основное содержание блога надиктовывается и выкладывается в виде MP3-файлов;

  • видеоблог – основное содержание представлено в виде видеофайлов.

По особенностям контента:



  • контентный блог – блог, публикующий первичный авторский контент;

  • мониторинговый (ссылочный) блог – блог, основным контентом которого являются откомментированные ссылки на другие сайты;

  • цитатный блог – блог, основным контентом которого являются цитаты из других блогов;

  • тамблелог, Тамбллог, Тлог – Почти то же самое, что и обычный блог, с одним отличием: запись в блоге может быть только определённого формата. Например, цитата, видео, ссылка, песня, разговор и так далее). Тамблелог – скорее не система типа дневника, а черновик или записная книжка;

  • Сплог – спам-блог.

По технической основе:



  • автономный блог – блог на отдельном хостинге и системе управления содержимым;

  • блог на блог-платформе – блог, ведущийся на мощностях блог-службы (Живой Журнал, LiveInternet, Blogger и др.).


1.2Обзор аналогов

Существует два способа начать вести блог: воспользоваться специальным сервисом (например, LiveJournal) или установить к себе на сервер автономный блог, то есть использовать какой-либо движок. У последнего способа есть определенный недостаток – требуются определенные технические знания в этой области. Зато, если вы все-таки обладаете подобными знаниями, то можете настроить все так, как вам нужно. В этой главе предлагается обзор наиболее популярных движков для ведения своего блога.


Статистика использования платформ для ведения блогов на основе данных с сайта wappalyzer.com за май 2012 [6].

Рисунок 1.1 – Статистика использования платформ


Как видно из диаграммы основными движками являются:
Таблица 1.1 – Статистика использования платформ

#

Платформа

Сайтов

Просмотров

1

WordPress

284100

2559251

2

Blogger

62107

324966

3

Tumblr

14569

74413

4

LiveJournal

10785

8037

5

TypePad

2865

20535

Рассмотрим некоторые из них.


1.2.1Система WordPress





Официальный сайт: http://wordpress.org

Русский сайт: http://wordpress.ru

Тип: Автономный


Рисунок 1.2 – Логоти WordPress


Особенности:



  • мгновенная публикация;

  • защита от спама в комментариях;

  • интегрированная лента дружественных блогов;

  • управление страницами;

  • защита паролем страниц и постов;

  • дополнительные поля;

  • простое обновление и инсталляция;

  • простое модифицирование;

  • возможность администрирования нескольким авторам;

  • возможность выбирать определенные категории;

  • регистрация для внесения комментариев;

  • публикация поста в заданную дату;

  • полное соответствие всем веб-стандартам;

  • использование PHP и MySQL.

Самый распространенный движок среди блоггеров. Имеет множество функций – именно те, которые действительно нужны блоггеру. Присутствует русский язык и русскоязычное комьюнити. Написан на PHP, в качестве базы данных использует MySQL. Сфера применения – от блогов до достаточно сложных новостных ресурсов и даже интернет-магазинов.


Рисунок 1.3 – Пример блога на WorPress



1.2.2Платформа Blogger





Официальный сайт: http://blogger.com

Тип: Блог-платформа



Рисунок 1.4 – Логотип Blogger


Особенности:



  • создание дизайна блога;

  • простой в использовании интерфейс;

  • бесплатный домен третьего уровня;

  • возможность прикреплять фотографии и видео;

  • комментирование записей;

  • уведомления об ответах;

  • учетная запись OpenID для простой авторизации;

  • 41 язык, в том числе и русский.

Веб-сервис для ведения блогов, с помощью которого любой пользователь может завести свой блог, не прибегая к программированию и не заботясь об установке и настройке программного обеспечения. Создан компанией Pyra Labs, которой сейчас владеет Google.


Рисунок 1.5 – Пример блога на платформе Blogger



1.2.3Платформа Tumblr





Официальный сайт: http://tumblr.com

Тип: Платформа микроблоггинга



Рисунок 1.6 – Логотип Tumblr


Особенности:



  • простота использования в сочетании с интуитивно простым интерфейсом;

  • различные виды контента (Текст, Фото, Цитата, Ссылка, Разговор, Аудио и Видео);

  • очередь сообщений;

  • автоматический перенос сообщений в Twitter, Facebook, FeedBurner.

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


Рисунок 1.7 – Пример блога на платформе Tumblr



1.2.4Платформа LiveJournal





Официальный сайт: http://livejournal.com

Тип: Блог-платформа



Рисунок 1.8 – Логотип LiveJournal


Особенности:



  • разные типы записей и возможности их комментирования;

  • указание расширенных сведений о пользователе;

  • друзья и лента друзей (френдлента);

  • картинки пользователей (юзерпики);

  • функции безопасности аккаунта.

Блог-платформа, а также отдельный персональный блог, размещённый на этой платформе. Предоставляет возможность публиковать свои и комментировать чужие записи, вести коллективные блоги, добавлять в друзья других пользователей и следить за их записями в «ленте друзей». До недавнего времени отличался отсутствием обязательной рекламы в бесплатных блогах. Ранее самая популярная платформа, однако, с октября 2011 года в материале газеты «Ведомости» отмечается падение популярности «Живого Журнала». Газета ссылается на материалы Comscore и отмечает: с января по август 2011 года месячное число уникальных пользователей ЖЖ снизилось на 8,2 миллионов до 27,7 миллионов (-23 %), а российского сегмента – на 2,8 миллионов до 8,6 миллионов (-25 %). По данным TNS Media Research, в российском сегменте снижение еще выше: – на 3,9 миллионов пользователей (-26 %).



Рисунок 1.9 – Пример блога на платформе LiveJournal



2Проектирование системы

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



  • администраторы – имеют доступ к закрытой части сайта (backend), редактированию новостей, изменение настроек сайта;

  • пользователи – имеют доступ только к публичной части сайта (frontend).

Необходимо разработать два интерфейса backend и frontend.


Исходя из этой логики работы, составим диаграмму вариантов использования:

Рисунок 2.10 – Диаграмма вариантов использования



2.1Проектирование пользовательского интерфейса системы

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


Рисунок 2.11 – Шаблон интерфейса главной страницы


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

В поле для комментариев так же находится окно авторизации пользователя.

При клике по превью разворачивается полноразмерное изображение при помощи JavaScript.

Рисунок 2.12 – Шаблон интерфейса страницы подробного просмотра новости



2.2Проектирование интерфейса административной панели

Административная панель блога для пользователя с правами admin содержит два блока:



  • блок для изменения настроек блога;

  • блок, в котором выводится все созданные посты и инструменты для их редактирования.

В случае если в административную панель попадает пользователь с правами content, блок изменения настроек не выводится.



Рисунок 2.13 – Шаблон интерфейса административной панели



2.3Проектирование структуры папок и файлов

Основываясь на разработанном в главах 2.1 и 2.2 интерфейсе, составим диаграмму компонентов системы:


Рисунок 2.14 – Диаграмма компонентов системы


Исходя из диаграммы компонентов указанной на рисунке Рисунок 2 .14, опишем структуру папок и файлов разрабатываемой системы:

В корневом каталоге находятся файлы:



    1. .htaccess – файл конфигурации веб-сервера Apache.

    2. adm.php – файл админ-панели.

    3. feed.php – файл RRS-ленты.

    4. index.php – файл главной страницы.

    5. install.php – файл установки.

    6. login.php – файл авторизации.

    7. logout.php – файл авторизации.

    8. robots.txt – файл настроек индексации.

    9. css – папка со стилями оформления.

    10. image – папка для хранения загруженных изображений.

    11. img – папка с изображениями оформления.

    12. inc – папка с вспомогательными файлами блога, содержит:

    • config.php – файл с настройками блога;

    • settings.php – файл получения настроек из БД;

    • connect.php – файл подключения к БД;

    • functions.php – функции работы с БД.

    1. lng – папка с языковыми файлами блога

    2. tpl – папка с шаблонами оформления блога

    3. js – папка с необходимыми JavaScript сценариями

    4. thumb – папка для хранения уменьшенных копий изобр.



2.4Выбор программных средств реализации системы

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

Для реализации системы будет использоваться:


  • языки программирования PHP, HTML, JavaScript;

  • база данных MySQL.

PHP и JavaScript выбраны как наиболее развивающиеся и широко распространенные языки программирования для web. К тому же для JavaScript в настоящий момент существует множество фрэймворков, облегчающих рутинные действия. Например самым распространенным и известным является jQuery.

MySQL был выбран исходя из его высокой производительности и кроссплатформенности. Кроссплатформенность позволяет нам использовать разрабатываемую систему на бо̀льшем количестве серверных станций. Так же MySQL позволяет хранить достаточное количество данных в таблицах: до 8 млн ТБ (263 байт) начиная с версии 3.23 [3].

Все указанные выше средства должны поддерживаться веб-сервером. На основе данных с сайта wappalyzer.com за май 2012 самыми распространенными являются [6]:

Рисунок 2.15 – Статистика использования веб-серверов


Таблица 2.2 – Статистика использования веб-серверов

#

Платформа

Сайтов

1

Apache

1113064

2

Nginx

283461

3

IIS

229246

4

OpenGSE

61504

5

Lighttpd

14387

Поскольку Apache, в отличие от остальных, кроссплатформенный будем использовать именно его.

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

Исходя из выше сказанного, представим структуру взаимодействия пользователя, системы, программных и аппаратных средств; в виде диаграммы развертывания, представленной на рисунке Рисунок 2 .16.


Рисунок 2.16 – Диаграмма развертывания




2.5Даталогическое проектирование базы данных системы

Проектирование БД для любой системы разделяется на следующие этапы:



  • определение требований к базе данных;

  • концептуальное проектирование базы данных;

  • выбор средств реализации базы данных;

  • логическое проектирование;

  • физическое проектирование.

База данных будет содержать следующие таблицы:



  • новости – для хранения новости, текстовой информации (заголовок, содержимое) и служебной информации (идентификатор новости, отображение, дата публикации);

  • изображения – для хранения информации об изображении (заголовок, описание, отображение);

  • настройки – для хранения настроек блога;

  • пользователи – для хранения административных пользователей.

Исходя из указанных требований, построим даталогическую схему базы данных:



Рисунок 2.17 – Даталогическая модель (ER-диаграмма) базы данных



2.6Требования к техническому обеспечению

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



2.6.1Расчет необходимого объема внешней памяти

Проведем расчет необходимой внешней памяти для системы по формуле:

VВП = VОС + Vsys + Vsrv + Vadd,

где VОС – объем внешней памяти, занимаемый операционной системой, МБ;

Vsrv – объём внешней памяти, занимаемый web-сервером Apache, МБ;

Vsys – объём внешней памяти, занимаемый системой (БД+файлы) после установки, МБ;

Vadd – объём внешней памяти, занимаемый PHP и MySQL, МБ.

Поскольку разрабатываемая система является кроссплатформенной, то следует рассмотреть варианты использования системы на наиболее распространенных ОС, таковыми являются Microsoft Windows 7 и Debian Linux 6.0.

Для расчета примем, что система функционирует в операционных системах Microsoft Windows 7 и Debian Linux 6.0.

Исходя из системных требований, примем необходимый объем внешней памяти для Microsoft Windows 7 как 16 ГБ, для Debian Linux 6.0 как 650 МБ [7], [8].

Расчет необходимого места для системы Microsoft Windows 7:

VВП = 16384МБ + 5МБ + 200МБ + 500МБ = 17089МБ,

Расчет необходимого места для системы Debian Linux 6.0:

VВП = 650МБ + 5МБ + 200МБ + 500МБ = 1355МБ,

Таким образом, объем дискового пространства, требуемого для работы системы, составит чуть более 1ГБ в случае использования Debian Linux 6.0, и более 10ГБ в случае использования Microsoft Windows 7. Даже минимальная конфигурация распространенных сейчас ЭВМ будет обеспечивать требуемые ресурсы долговременной памяти, однако, на слабых ЭВМ или устройствах с ограниченным количеством памяти рекомендуется использовать Debian Linux 6.0.

2.6.2Расчет необходимого объема оперативной памяти

Проведем расчет необходимой оперативной памяти по формуле:

VОП = VОС + Vapache + Vmysql,

Для работы ОС Microsoft Windows 7 необходимо минимум VОС = 1ГБ оперативной памяти, Debian Linux 6.0 VОС = 56МБ, web-серверу Apache Vapache = 5МБ, серверу баз данных MySQL Vmysql = 5МБ.

VОПWindows7 = 1024МБ + 5МБ + 5МБ,

VОПDebian6 = 56МБ + 5МБ + 5МБ,

Т.о., в качестве подходящего объема оперативной памяти целесообразно принять 1,5ГБ в случае использования Microsoft Windows 7 и 512МБ в случае Debian Linux 6.0.

2.6.3Минимальные требования к техническим средствам

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

При использовании Windows 7:


  • 32-разрядный (x86) или 64-разрядный (x64) процессор с тактовой частотой 1ГГц или выше;

  • 1,5ГБ (для 32-разрядной системы) или 2,5 ГБ (для 64-разрядной системы) оперативной памяти (ОЗУ);

  • 20ГБ (для 32-разрядной системы) или 25 ГБ (для 64-разрядной системы) пространства на жестком диске;

  • графическое устройство DirectX 9 с драйвером WDDM версии 1.0 или выше.

При использовании Debian Linux 6.0:

  • Intel x86, AMD64, ARM – совместимый компьютер с тактовой частотой процессора 512МГц и более;

  • объем оперативной памяти не менее 256МБ;

  • жесткий диск объемом не менее 2ГБ.

Наиболее оптимальным вариантом используемой ОС является Debian Linux 6.0. Основные факторы, повлиявшие на принятое решение:

  • наименьшее потребление технических ресурсов;

  • бесплатность решения;

  • поддержка этой ОС многими хостинг-провайдерами;

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



3Разработка системы




3.1Разработка физической модели БД

Для перехода от логической модели к физической необходимо определить физические характеристики хранимых записей: типа значений и объема требуемой для хранения значений памяти. Таим образом, физическая модель данных ориентированная на конкретную СУБД.

На физическом уровне основными компонентами физической базы данных являются физические блоки, хранимые записи, указатели, данные переполнения и промежутки между блоками [1]. Взаимосвязи между хранимыми записями, возникающие в результате их группирования или использования индексных структур, могут также рассматриваться как часть физической структуры. Результатом физического проектирования является полностью готовая к внедрению структура базы данных.

Логический уровень позволяет давать сущностям семантические имена более понятные специалистам предметной области. На физическом уровне объекты БД необходимо называть так, как того требуют ограничения СУБД (например, словами, состоящими из латинских букв и символов «_», без использования специальных символов).

Учитывая выбранные в разделе 2.4 средства разработки, рассмотрим физическую реализацию структуры баз данных для СУБД MySQL.

Описание данных, хранимых в таблицах можно представить в виде таблиц 3.1 – 3.4.

В таблице Таблица 3 .3 представлена структура таблицы Новости, хранящей новости опубликованные в блоге. В таблице приведены важные поля.
Таблица 3.3– Структура таблицы «Новости» (news)

Название поля

Описание

Тип поля

Дополнительно

Id

Уникальный идентификатор

INT(11)

Автоинкремент,

первичный ключ



Title

Заголовок новости

TINYTEXT




Text

Текст новости

TEXT




Cut

Наличие краткого содержимого

TINYINT(1)




Image

Наличие изображений

TINYINT(1)




Date

Дата публикации новости

DATETIME




Pub

Флаг отображения новости

TINYINT(1)



Таблица 3.4 – Структура таблицы «Изображения» (images)



Название поля

Описание

Тип поля

Дополнительно

Id

Уникальный идентификатор

INT(11)

Автоинкремент,

первичный ключ



Name

Название изображения

TINYTEXT




Title

Заголовок изображения

TINYTEXT




Description

Описание изображения

TEXT




Pub

Флаг отображения изображения

TINYINT(1)




news_id

Идентификатор новости

INT(11)

Внешний ключ

Таблица 3.5 – Структура таблица «Пользователи» (users)



Название поля

Описание

Тип поля

Дополнительно

Id

Уникальный идентификатор

INT(11)

Автоинкремент,

первичный ключ



Login

Логин пользователя

TINYTEXT




Pass

Пароль пользователя

TINYTEXT



Таблица 3.6 – Структура таблицы «Настройки» (settings)



Название поля

Описание

Тип поля

Дополнительно

Id

Уникальный идентификатор

INT(11)

Автоинкремент,

первичный ключ



Option

Название опции

TINYTEXT




Value

Значение опции

TINYTEXT



Представленная на рисунке Рисунок 3 .18 физическая модель базы данных была построена на основе логической модели базы данных (раздел 2.5).



Рисунок 3.18 – Физическая модель базы данных



3.2Разработка сценария взаимодействия с базой данных

Опишем алгоритм взаимодействия сценария с базой данных:



  1. Установить соединение с SQL-сервером.

  2. Передать ему логин, пароль, имя базы.

  3. Передать SQL-запрос и ожидать результата. Дальше действия SQL-сервера:

    1. интерпретировать SQL-запрос, найти в нем имя таблицы, поля и идентификатор записи;

    2. открыть файлы нужной таблицы;

    3. считать список полей из файла структуры;

    4. считать нужный индекс из файла индексов;

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

    6. считать с найденной позиции файла данных нужное количество данных;

    7. разбить эти данные по запрошенным полям в ассоциативный массив;

    8. закрыть файлы.

  4. Передать полученный массив сценарию.

  5. По команде сценарию закрыть соединение.

  6. Формирование массива результатов.

По описанному алгоритму составим схему алгоритма:


Рисунок 3.19 – Схема алгоритма взаимодействия сценария с базой данных


3.3Написание исходного кода системы

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



3.3.1Сценарии авторизации

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

Для того чтобы в сценарии можно было работать с сессиями, необходимо сначала инициализировать механизм сессий. Делается это с помощью функции session_start(). При этом будет создана новая сессия или восстановлена уже существующая. Когда посетитель заходит на сайт, ему присваивается 32-х разрядный идентификатор вида: abcd1hfgh2ijkl3m6op4qrs5tuv6ixyz, который «следует» за ним при всех перемещениях по сайту. Таким образом, сервер узнает, нужно ли создавать новую сессию или использовать существующую. Хранение сессии обеспечивается либо по средствам cookies, либо, если они отключены у пользователя, добавлением ко всем адресам GET-запроса вида: PHPSESSID=идентификатор, т.е. адрес myscript.php превратиться в myscript.php?PHPSESSID=идентификатор.

При обработке запроса на сервере PHP ищет идентификатор в переданных ему данных и, если находит и сессия не устарела, то обновляет ее. В противном случае создается новая. Кстати, идентификатор сессии можно получить с помощью функции session_id();

После того, как механизм сессий был инициализирован в сценарии, мы можем сохранять любую информацию в ассоциативном массиве $_SESSION. Этот массив является глобальной переменной сессии. Таким образом, сохранив в нем, к примеру, значения переменных login и password на странице авторизации мы можем использовать их на всех остальных страницах защищенной части сайта.

Завершение сессии происходит либо автоматически по истечению определенного промежутка времени, либо принудительно при использовании функции session_destroy(). Исходный код сценариев login.php и logout.php приведен в приложении 2 и 3.



3.3.2Сценарий пользовательского интерфейса (frontend)

index.php является основным сценарием который используется для вывода содержимого блога. Выводит как краткие описания новостей на главной странице, так и подробное содержимое новости. Для вывода подробного содержимого сценарию необходимо передать параметр, содержащий уникальный идентификатор новости. Исходный код сценария index.php приведен в приложении 4.



3.3.3Сценарий административного интерфейса (backend)

adm.php – основной сценарий для администрирования содержимого блога. Сценарий может находится в нескольких состояниях:



  • просмотр новости;

  • редактирование новости;

  • публикация новости;

  • добавление новости;

  • удаление новости;

  • управление изображениями.

Каждое из состояний активируется с помощью HTTP метода POST.

Метод HTTP (англ. HTTP Method) – последовательность из любых символов, кроме управляющих и разделителей, указывающая на основную операцию над ресурсом. Обычно метод представляет собой короткое английское слово, записанное заглавными буквами. Название метода чувствительно к регистру.

Метод POST применяется для передачи пользовательских данных заданному ресурсу. Например, в блогах посетители обычно могут вводить свои комментарии к записям в HTML-форму, после чего они передаются серверу методом POST и он помещает их на страницу. При этом передаваемые данные (в примере с блогами — текст комментария) включаются в тело запроса. Аналогично с помощью метода POST обычно загружаются файлы на сервер.

Многократное повторение одних и тех же запросов POST может возвращать разные результаты (например, после каждой отправки комментария будет появляться одна копия этого комментария).

Сообщение ответа сервера на выполнение метода POST не кэшируется.

4Введение системы в эксплуатацию

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



4.1Развертывание системы

Перед использованием системы необходимо установить требуемые в разделе 2.4 компоненты ОС. Подробную установку ОС, Apache, PHP и MySQL в данной работе рассматривать не имеет смысла, поэтому опишем установку разрабатываемой системы на готовый веб-сервер.

Для установки разрабатываемой системы требуется доступ к корневому каталогу веб-сервера (FTP или sFTP для удаленного доступа, либо прямой доступ на локальной ЭВМ) и базе данных MySQL.

Загрузим исполняемые сценарии системы в корневой каталог будущего месторасположения блога. Процесс загрузки файлов через FTP изображен на рисунке Рисунок 4 .20.

Теперь необходимо создать в базе данных MySQL таблицу с кодировкой UTF-8. Это можно сделать либо с помощью графических оболочек для работы с БД, например: PHPMyAdmin. Navicat и д.р. Либо через MySQL консоль командой:

SET NAMES cp866;

CREATE DATABASE <Имя базы данных>;

Рисунок 4.20 – Процесс загрузки исполняемых сценариев на веб-сервер


Для упрощения установки и процедуры развертывания системы был разработан сценарий install.php, создающий все необходимые таблицы в базе данных и устанавливающий настройки системы по-умолчанию. Исходный код сценария находится в приложении 1. После запуска сценария на выполнение он предлагает заполнить параметры подключения к MySQL и, если они указаны верно, после нажатия кнопки «Make!» создает все необходимые таблицы в базе данных. Интерфейс исполнения сценария изображен на рисунке Рисунок 4 .21. После установки можно перейти в панель администрирования и приступить к использованию системы.

Рисунок 4.21 – Интерфейс сценария установки системы



4.2Описание разработанной панели администратора

После успешной установки системы с помощью сценария install.php перед администратором открывается страница логина в систему изображенная на рисунке Рисунок 4 .22. На рисунке Рисунок 4 .23 изображен интерфейс административной панели, на этой странице можно изменить основные настройки системы, удалять, добавлять, редактировать все записи в блоге. Интерфейс страницы редактирования записи в изображен на рисунке Рисунок 4 .24.



Рисунок 4.22 – Страница авторизации в административную панель



Рисунок 4.23 – Интерфейс административной панели



Рисунок 4.24 – Интерфейс редактирования новости



Заключение


В рамках данной дипломной работы было разработана система управления содержимым интернет-дневника, был исследован вопрос разработки web-приложений с использованием современных средств разработки, в частности использование JavaScript библиотеки JQuery.

jQuery – библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML. Библиотека jQuery помогает легко получать доступ к любому элементу DOM, обращаться к атрибутам и содержимому элементов DOM, манипулировать ими. Также библиотека jQuery предоставляет удобный API по работе с Ajax.

Библиотека jQuery содержит функциональность, полезную для максимально широкого круга задач. Тем не менее, разработчиками библиотеки не ставилась задача совмещения в jQuery функций, которые подошли бы всюду, поскольку это привело бы к большому коду, бо́льшая часть которого не востребована. Поэтому была реализована архитектура компактного универсального ядра библиотеки и плагинов. Это позволяет собрать для ресурса именно ту JavaScript-функциональность, которая на нём была бы востребована.


Список использованных источников





  1. Куправа Т.А. Создание и программирование баз данных средствами СУБД. [Текст] / Т.А. Куправа – Москва: Издат. Мир, 1991. – 356 с.

  2. Кузнецов М.А., Симдянов А.И. MySQL 5. В подлиннике. [Текст] / М.А. Кузнецов, А.И. Симдянов – Санкт-Петербург: Издат. БКВ-Петербург, 2010. – 456 с.

  3. Шварц Б.Т., Зайцев П.З., Ткаченко В.С. MySQL оптимизация производительности. [Текст] / Б.Т. Шварц, П.З. Зайцев, В.С.Ткаченко – Санкт-Петербург: Издат. Просвещение, 2010. – 478 с.

  4. Ленгсторф Д. PHP и jQuery для профессионалов. [Текст] / Д. Ленгсторф – Санкт-Петербург: Издат. Вильямс, 2011. – 789 с.

  5. П.А. Ташков Веб-мастеринг на 100%: HTML, CSS, JavaScript, PHP, CMS, AJAX, раскрутка. [Текст] / Ташков П.А. – Санкт-Петербург: Издат. Питер, 2010. – 976 с.

  6. [Электронный ресурс] – Режим доступа: http://wappalyzer.com – Загл. с экрана.

  7. [Электронный ресурс] – Режим доступа: http://windows.microsoft.com – Загл. с экрана.

  8. [Электронный ресурс] – Режим доступа: http://www.debian.org – Загл. с экрана.


Приложение А


Сценарий установки системы (install.php)

define('_VALID_MBLOG', '1');

define('MBLOG_PATH', dirname(__FILE__)); //определяем путь
//шаблоны

$pub_header_tpl = MBLOG_PATH."/inc/tpl/pub_header.tpl";

$pub_footer_tpl = MBLOG_PATH."/inc/tpl/pub_footer.tpl";
$title = "Install MBLOG";
include $pub_header_tpl;
if (file_exists(MBLOG_PATH.'/inc/config.php')){

echo "

Configuration file was found!

";

require_once(MBLOG_PATH.'/inc/config.php');

} else {


echo "

Configuration file not found! Configure script manually.

";

}

?>
























if($_GET){

$dblocation = $_GET['dblocation'];

$dbuser = $_GET['dbuser'];



Продолжение приложения А

$dbpassword = $_GET['dbpassword'];

$dbname = $_GET['dbname'];

$dbprefix = $_GET['dbprefix'];

$dbcnx = mysql_connect($dblocation,$dbuser,$dbpassword);

if(!$dbcnx) {

echo "can't connect";

exit();


}
if(!mysql_select_db($dbname,$dbcnx)){

echo "can't select db";

exit();

}
$query = <<

CREATE TABLE `{prefix}news` (

`id` int(11) NOT NULL auto_increment,

`title` tinytext NOT NULL,

`text` text NOT NULL,

`cut` tinyint(1) NOT NULL default '0',

`image` tinyint(1) NOT NULL default '0',

`date` datetime NOT NULL default '0000-00-00 00:00:00',

`pub` tinyint(1) NOT NULL default '0',

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

SQL;
$query = str_replace('{prefix}', $dbprefix, $query);

mysql_query($query);


$query = "INSERT INTO `{prefix}news` (`title`, `text`, `cut`, `image`, `date`, `pub`) VALUES ('First good news', 'MBLOG sucesfuly installed!
', 0, 0, '".date('Y-m-d H:i:s')."', 1)";

$query = str_replace('{prefix}', $dbprefix, $query);

mysql_query($query);
$query = <<

CREATE TABLE `{prefix}images` (



Продолжение приложения А

`id` int(11) NOT NULL auto_increment,

`name` tinytext NOT NULL,

`title` tinytext NOT NULL,

`description` text NOT NULL,

`pub` tinyint(1) NOT NULL default '0',

`news_id` int(11) NOT NULL,

PRIMARY KEY (id)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

SQL;
$query = str_replace('{prefix}', $dbprefix, $query);

mysql_query($query);

}
include $pub_footer_tpl;

?>

Приложение Б


Сценарий авторизации (login.php)

define('_VALID_MBLOG', '1');

define('MBLOG_PATH', dirname(__FILE__)); //определяем путь

require_once MBLOG_PATH."/inc/config.php";

session_start(); //инициализирум механизм сесссий
if(!isset($_POST['ok'])) {

// если форма не заполнена, то выводим ее

echo '





Страница авторизации























mblog





































Продолжение приложения Б

Login:
Password:










Смотрите также:
Исследование предметной области 11 2 Проектирование системы 24 3 Разработка системы 38
421.31kb.
1 стр.
Тема семестровой работы
69.78kb.
1 стр.
Разработка и исследование
806.11kb.
6 стр.
6 анализ предметной области и разработка технического задания 8
710.29kb.
9 стр.
«Oracle Database: проектирование и разработка» «Oracle. Проектирование бд» (часть 1)
47.77kb.
1 стр.
Разработка и исследование модели бесплатформенной инерциальной навигационной системы
71.66kb.
1 стр.
Статья посвящена реализации мероприятия «разработка общероссийской системы информационно-маркетинговых центров» федеральной целевой программы «Электронная Россия»
209.36kb.
1 стр.
"Разработка и исследование системы дополненной реальности с поддержкой распознавания жестов в режиме реального времени"
687.99kb.
14 стр.
Разработка и исследование системы связи на основе полупроводникового оптического квантового генератора
34.7kb.
1 стр.
Исследование и разработка информационной системы формирования и управления интернет-ресурсом по планетной картографии
222.23kb.
1 стр.
Разработка системы визуализации экологического загрязнения Житомирской области
113.72kb.
1 стр.
Учебный план дополнительной профессиональной образовательной программы повышения квалификации работников системы образования Пермской области «проектирование, развертывание и администрирование компьютерных сетей»
15.55kb.
1 стр.