Главная страница

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


Скачать 2.79 Mb.
НазваниеВ процессе создания домашней странички, коммерческого или некоммерческого сайта используется один и тот же набор технологий, одинаковые приемы и технические решения
АнкорТеория дипломных работ
Дата10.06.2022
Размер2.79 Mb.
Формат файлаdoc
Имя файлатеория исправ.doc
ТипДокументы
#583089
страница2 из 5
1   2   3   4   5

Глава 2. Проектная часть




2.1 Построение инфологической модели предметной области


Инфологическая модель предметной области - это описание предметной области, выполненное с использованием специальных языковых средств, не зависящих от использования в дальнейшем программных средств.

Требования к инфологической модели:

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

  • непротиворечивость;

  • отражение потребности всех пользователей будущей информационной системы;

  • допущение возможных расширений модели, а также при большой размерности инфологической модели - композиции и декомпозиции;

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

  • легкость восприятия разными категориями пользователей.

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

Инфологическая модель предметной области представлена в приложении А.

Для описания инфологической модели данных можно выделить десять объектов, которые участвуют в обработке информации: "Главное", "Дело техники", "Научный подход", "Открытый космос", "Прошлая жизнь", "Жажда творчества", "Секрет фирмы", "Личный опыт". Каждый объект обладает своими свойствами.

Объект "Главное" включает в себя научные статьи, контактные данные. Их значения остаются постоянными.

Объект "Дело техники" включает в себя информацию о последних достижениях в сфере технической науки.

Объект "Научный подход" включает в себя информацию о о последних достижениях в сфере естественной науки.

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

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

Объект "Жажда творчества" включает в себя информацию о последних достижениях в области нано технологии.

Объект "Секрет фирмы" содержит информацию о новых продукциях фирм производителей в области кибернетики.

Объект "Личный опыт" содержит информацию о последних достижениях в сфере роботостроения.

2.2 Построение даталогической модели предметной области


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

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

Одной из основных таблиц является таблица "users". В ней хранится вся информация о пользователях, зарегистрированных в системе. Таблица содержит поля - login - идентификационное поле, идентифицирующее единственным образом студента при входе в систему. Passwd - пароль для доступа к подсистеме обучения. Пароль кодируется шифром md5, алгоритм которого реализован в языке PHP. Кодирование позволяет защитить пароль от просмотра заинтересованными пользователями. По этим двум параметрам осуществляется вход в систему.

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

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

Ключевым полем в таблице users является поле login. По полю login данная таблица связана с таблицей "user_courses" связью "один-ко-многим", по полю user _code - c таблицей " user_codes" связью "один-к-одному".

Для разработки системы используется комплекс программ, без которых создание требуемого приложения было бы невозможным. Как уже говорилось ранее, в качестве web-сервера выбран Apache версии 5.0.35, в качестве языка программирования PHP 5.1.2, в качестве сервера баз данных MySQL 5.0.21. Для разработки и тестирования приложения используется CMS Drupal. Каждый из этих продуктов требует тонкой настройки. В этом подразделе описаны тонкости установки и настройки перечисленных программных средств.

2.3 Web-сервер Apache


Функции Web-сервера выполняет не компьютер, а программа, установленная на нем. Apache и является той самой программой. Когда браузер пользователя подключается к Web-серверу и посылает заголовок GET (это просьба передать файл), его запрос обрабатывает Apache. Apache проверяет, есть ли указанный в заголовке GET файл, и, если есть, отправляет его вместе с заголовками браузеру.

Apache - это своего рода стандарт Web-сервера в Интернете. Его основным конкурентом является IIS (Internet Information Server) от Microsoft, который работает под Windows. Apache, хотя и существуют его версии под Windows, преимущественно устанавливается на Unix-подобных операционных системах - Linux и FreeBSD. Нужно также заметить, что большинство хостеров используют именно Apache, а не IIS. IIS устанавливается в основном на корпоративных серверах, работающих под Windows.

Сервер Apache просто необходим - без него мы не сможем протестировать web сценарии PHP. Конечно, можно тестировать и без сервера, но тогда нужно будет использовать сервер хостера, но в этом случае затраты на Интернет сильно возрастут.

Для установки Apache для Windows нужно посетить сайт http: // www. apache. org и загрузить версию Apache для Windows) [12]. Установка сервера проблем не вызывает: нужно просто запустить программу установки и выбрать тип установки Typical. Еще потребуется указать каталог, в который будет производиться установка. По умолчанию будет установлен в каталог "C: \Program Files\Apache Group\Apache". Окно установки с заданием некоторых параметров показано на рисунке 2.



Рисунок 2. Окно установки web-сервера Apache
По окончании установки Apache необходимо настроить. По умолчанию корневым каталогом для HTML-документов будет C: \Program Files\Apache Group\Apache\htdocs. Такое расположение не очень удобно, поэтому создадим каталог С: \www, в котором будут находиться файлы. В этом же каталоге создадим два подкаталога - cgi и html. В первом будут находится CGI-приложения, а во втором - HTML-файлы.

Затем нужно открыть в любом текстовом редакторе файл C: \Program Files\Apache Group\Apache\conf \httpd. conf и отредактировать следующие директивы:

ServerName - установить имя сервера. При этом, директива ServerName по умолчанию закомментирована, то есть игнорируется сервером. Поэтому необходимо раскомментировать эту директиву, убрав перед ней значок #.

DocumentRoot - установим значение С:/www/html:

DocumentRoot с:/www/html

Таким образом, укажем каталог, в котором будут размещаться HTML-файлы.

Установим директивы ScriptAlias так:

ScriptAlias/cgi/"с:/www/cgi/"

ScriptAlias/cgi-bin/"c:/www/cgi/"

Благодаря этому создадим два псевдонима для каталога с:/www/cgi. Таким образом, если будет указан путь http: // localhost/cgi или http: // localhost/cgi-bin, то на самом деле обращение будет к каталогу с:/www/cgi.

Секцию заменим на следующую:



Options Indexes Includes AllowOverride All Allow from all


Таким образом, зададим ряд настроек по умолчанию для каталога с: \www и всех его подкаталогов. А именно: автоматическую генерацию списка содержимого каталога при просмотре его в браузере, поддержку SSI, а также возможность использовать файлы. access для индивидуальной настройки каталогов.

Убедимся, что есть директива AddHandler:

AddHandler cgi-script. bat. exe. cgi

Эта директива указывает Apache на то, что файл с расширениями. bat. exe и. cgi следует воспринимать как CGI-модули.

Установим параметры SSI:

Addtype text/html. shtml

AddHandler server-parsed. shtml. html. htm Благодаря этому файлы с указанными расширениями будут обрабатываться SSI.

Необходимо сохранить отредактированный файл.

Теперь протестируем работу Apache. Запуск:

C: \Program Files\Apache Group\Apache\apache. exe

При успешном запуске появится надпись

Apache/2.0.35 (Win32) running...

Теперь можно проверить корректность работы сервера. Запустим Internet Explorer или любой другой браузер и введем: http: // localhost. Вы должны увидеть стартовую страницу Apache. Теперь проверим CGI и SSI. Для этого создадим файл test. bat и поместим его в каталог c: \www\cgi:

@echo off

echo Content-type: text/html

echo.

echo.

echo Hello!

В окне браузера введите http: // localhost/cgi/test. bat -увидите слово Hello! Для проверки SSI нужно создать файл test. html и поместить его в каталог c: \www\html:

SSI Test
SSI (Server Side Include) - включение со стороны сервера, позволяет включать в Web-страницу код HTML, находящийся в других файлах.

В окне браузера при вызове файла test. html вы увидите SSI Test, a затем - стартовую страницу Apache.

2.4 Установка РНР и настройка Apache для работы с РНР


После установки Apache установим РНР 5. Версию РНР 5 для Windows можно скачать по адресу http: // www. php. net (последняя версия РНР доступна по адресу http: // www. php. net/downloads. php) [13].

Запустим программу установки, которая по умолчанию установит РНР 4 в каталог C: \Program Files\PHP 5\. Однако в процессе установки можно выбрать другой каталог.

Окно установки PHP показано на рисунке 3



Рисунок 3. Окно установки PHP 5
Сразу после установки необходимо открыть файл php. ini (он будет в каталоге, куда вы установили РНР) и отредактировать следующие параметры:

[mail function] ; For Win32 only. SMTP = localhost

sendmail_from = me@localhost. com

Параметр SMTP задает имя SMTP-сервера. По умолчанию в качестве SMTP-сервера используется локальный компьютер - это хорошо для Linux, но в Windows вам нужно указать SMTP-сервер провайдера, потому что вряд ли у вас будет установлен почтовик под Windows. Если вы не сделаете этого, функция mail(), отправляющая сообщения, работать не будет.

После этого откроем файл httpd. conf (файл конфигурации Apache) и найдем в нем строку:

AddType application/x-httpd-php php

Убедимся, что данная строка не закомментирована, то есть перед ней не стоит значок #. Если он стоит - уберем его. Таким образом, всем файлам с расширением. php будет поставлен в соответствие МIМЕ-тип application/x-httpd-php.

Типы MIME используются для идентификации типа содержимого. Благодаря этому приложения смогут определять, какого вида данные присланы и в каком соответствии сети проводить их обработку. Перечень всех типов MIME, поддерживаемых системой, находится в файле C: \Program Files\Apache Group\Apache\conf. Тип MIME указывается в формате: тип/подтип. Вот основные типы MIME:

application - приложение (программа или документ, связанный с программой).

audio - аудиофайл (audio/mpeg).

image - графический файл (audio/png).

text - текст (text/html - в формате HTML, text/plain - простой).

MIME-тип пересылаемых по сети данных указывается в заголовке Content-type.

Сразу же после этой строки добавим строки:

ScriptAlias/_php_/"с:/Program Files/PHP5/" Action application/x-httpdhp "/_php_/php. exe"

В этих двух строках мы сначала создаем псевдоним _php_ для каталога с:/Program Files/PHP 4/, а затем связываем все файлы типа application/x-httpd-php с обработчиком php. exe.

Теперь можно протестировать РНР. Для этого создадим файл test. php:


phpinfo ();? >

Данный файл нужно поместить в каталог c: \www\html. В браузере введите http: // localhost/test. php. В итоге вы должны увидеть результат работы функции phpinfo().

2.5 Установка MySQL


Сервер MySQL можно загрузить по адресу http: // www. mysql. com. Программа установки установит сервер в каталог С: \Program Files\MySQL\. Для запуска MySQL создадим файл server. bat:

@echo off

"С: \Program Files\MySQL\bin\mysqld"

start/m "C: \Program Files\Apache Group\Apache\apache"

Если вы работаете в Windows NT или 2000, server. bat должен выглядеть так, как это показано в следующем листинге:

@echo off

start C: \Progral\MySQL\bin\mysqld-nt - standalone

C: \Progral\Apachel\Apache\apache - k start

Теперь для запуска Apache и MySQL нужно ввести команду server. Создадим файл shutdown. bat, который будет останавливать оба сервера:

@echo off

C: \Progral\Apachel\Apache\apache - k shutdown

C: \Progral\MySQL\bin\mysqladmin - u root shutdown

Также необходимо добавить в конец файла my. ini следующие строки (конкретно для данного проекта), задающие логин и пароль доступа к серверу:

user=root

password=geijr

Файл настройки сервера баз данных MySQL находится по умолчанию в корневом каталоге Windows.

Просмотреть все базы данных и таблицы, созданные на сервере MySQL можно утилитой WinMySQLadmin 1.4, окно которой показано на рисунке 4.



Рисунок 4. Окно утилиты WinMySQLadmin 1.4

2.6 Работа в CMS Drupal


Drupal (друпал)  — система управления сайтом (CMS), написанная на языке PHP и использующая в качестве хранилища данных реляционную базу данных (поддерживаются MySQL, PostgreSQL и другие). Drupal является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями энтузиастов со всего мира.

Начал разработку в 2000 году бельгиец Дрис Байтаерт (Dries Buytaert), который и поныне является руководителем проекта. Название drupal является искажённым произношением голландского слова druppel (капля) и появилось в результате забавной ошибки. В 2000 году несколько студентов антверпенского университета использовали общий ADSL-модем для доступа в интернет, и для общения пользователей этой маленькой локальной сети Дрис создал внутренний сайт. Программа, на которой работал сайт, не имела имени, пока Дрис не собрался регистрировать доменное имя для нового сайта, и в результате опечатки вместо dorp.org (от голландского dorp — деревня, вполне уместное имя для небольшого сообщества) был зарегистрирован drop.org (англ. drop — капля). Аудитория нового сайта со временем сменилась на интересующихся развитием новых веб-технологий, и новый сайт постепенно перешёл из любительского эксперимента в проект по обсуждениям идей веб-программирования. В 2001 году Дрис опубликовал исходный код drop.org под именем «Drupal». С тех пор разработка переместилась на зарегистрированный позднее сайт drupal.org, который приобрёл статус официального сайта проекта.

Со времени создания в процесс разработки были вовлечены сотни людей. Официальные разработчики ядра сейчас — это десятки человек, но много людей присылают свои патчи, включаемые в код системы. Также функциональность движка расширяется дополнительными модулями, которые создают сторонние разработчики. Например, в релизе 4.6 приняли участие 50 человек, приславших 338 поправок к коду, а в релизе 4.7 приняли участие уже 338 разработчиков, приславших примерно 1500 поправок. За пять лет существования проекта (к 2006 году) вышло 13 релизов. На данный момент (январь 2011) было разработано более 7000 дополнительных модулей, расширяющих базовые функции CMS. По статистике обращения к обновлениям движка на март 2009 года в интернете в пределах 120 тыс. активных сайтов на Drupal 6 (без учёта сайтов находящихся за файрволлами, сайтов с отключённым механизмом обновлений). Это также не учитывает сайтов работающих на ранних версиях Drupal.

В 2007 году Дрис Байтаерт создал фирму Acquia, направленную на коммерческую поддержку проектов и сервисов, основанных на Drupal, вдохновленный успехами Canonical и RedHat, построивших бизнес на поддержке открытых проектов. В 2008 Байтаерт получил учёную степень доктора философии по информатике при университете Гента.

Со временем вокруг международного сайта появились национальные сообщества. Сейчас работают более 20 национальных сайтов поддержки на разных языках, включая русскоязычное сообщество drupal.ru, основанное в 2003 году.

Архитектура Drupal позволяет применять его для построения различных типов сайтов — от блогов и форумов до информационных архивов или сайтов новостей. Имеющийся по умолчанию функционал можно увеличивать подключением дополнительных расширений — «модулей» в терминологии Drupal. Наиболее важные функции, предоставляемые Drupal «из коробки»:

  • единая категоризация всех видов содержимого (таксономия) — от форумных сообщений до блогов и новостных статей

  • широкий набор свойств при построении рубрикаторов: плоские списки, иерархии, иерархии с общими предками, синонимы, родственные категории

  • вложенность категорий любой глубины

  • поиск по содержимому сайта, в том числе поиск по таксономии и пользователям

  • разграничение доступа пользователей к документам (ролевая модель)

  • динамическое построение меню

  • поддержка XML-форматов:

  • вывод документов в RDF/RSS

  • агрегация материалов с других сайтов

  • BlogAPI для публикации материалов с помощью внешних приложений

  • авторизация через OpenID

  • символьные осмысленные URL (иначе «человеко-понятные» — ЧПУ)

  • переводы интерфейса сайта на разные языки, а также поддержка ведения разноязычного контента

  • возможность создания сайтов с пересекающимся содержимым (например общей базой пользователей или общими настройками)

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

  • механизм для ограничения нагрузки на сайт (автоматическое отключение при высокой посещаемости части информационных блоков и модулей)

  • уведомления о выходящих обновлениях модулей

Система поддерживает локализацию интерфейса для различных языков. Drupal 5 имеет переводы интерфейса на 33 языка, а Drupal 6 - более чем на 70 языков (однако не все переводы являются полными). Имеется поддержка русского языка. В Drupal используется собственный механизм для локализации с хранением переводов в базе данных, наравне с остальным содержимым сайта. При этом несложной является адаптация к работе со стандартной библиотекой gettext. Импорт и экспорт переводов сайта также осуществляется в виде po-файлов (формат используемый библиотекой gettext).

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

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

В Drupal предлагается гибкая схема организации структуры сайта на основе таксономии. Таксономия — механизм, позволяющий создавать произвольное количество тематических категорий для содержимого сайта и ассоциировать их с модулями, обеспечивающими ввод и вывод информации. Категории могут представлять плоские или иерархические списки, либо сложные структуры, где элемент может иметь несколько «родителей» и несколько дочерних элементов. С помощью подобной схемы одними и теми же модулями возможна организация различных вариантов структуризации содержимого. Например, легко создаётся сквозной список «ключевых слов» для всех документов сайта и т. п.

Другая парадигма появилась с созданием в Drupal расширения Content Construction Kit (CCK). CCK позволяет дополнять документы новыми полями различных типов — от полей ввода URL и email, до полей хранения и отображения мультимедийных файлов. Также посредством дополнительных модулей к CCK (например Node reference) можно организовать связи между документами, не используя механизм таксономии.

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

Несколько примеров модулей, которые можно скачать в репозитории на drupal.org:

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

  • Captcha — защитный механизм картинок «CAPTCHA», используемый при регистрации

  • Ecommerce, Ubercart — системы электронной коммерции

  • FCKeditor, CKEditor, Tinymce — визуальные редакторы для ввода контента

  • Gallery — интеграция с галереей изображений Gallery2

  • LDAP integration — интеграция с LDAP

  • mailhandler, listhandler — возможность публикации материалов сайта через почтовый интерфейс и из почтовых рассылок

  • Project — ведение проектов, включающее багтрекер и интеграцию с CVS и Subversion

  • SPAM — блокировка спама

  • Swish, Sphinxsearch — интеграция с поисковыми системами Swish и Sphinx

К несомненным достоинствам Drupal следует отнести весьма полную документацию по различным аспектам системы (преимущественно документация на английском языке).

Дизайн сайта на Drupal строится на основе сменных тем оформления. Как таковой нет единственной схемы построения дизайна. Взамен Drupal даёт возможность использовать различные «движки тем», использующие шаблоны, удобные для редактирования (шаблоны XML в движках xtemplate и Smarty или шаблоны на HTML и встроенный PHP в движке phptemplate и т. п.), либо создавать темы оформления напрямую обращающиеся к API Drupal. В комплект поставки Drupal включён движок тем на основе phptemplate и несколько примеров тем. Другие движки тем можно скачать на сайте проекта.

Начиная с версии 4.7 Drupal поддерживает технологию Ajax для динамической подгрузки содержимого без полного обновления страниц. В версии 5 для работы с JavaScript добавлена библиотека JQuery. C версии 6.0 появилось создание форм посредством AHAH (без полной перезагрузки страниц сайта).

Drupal в первую очередь ориентирован на платформу LAMP, но возможны варианты использования другого системного ПО.

Операционная система: семейство Unix (в том числе FreeBSD, Mac OS X), Windows (любые ОС, на которых может работать интерпретатор PHP)

Веб-сервер: Apache, Nginx, Lighttpd, IIS Versions 6, 7 (через Fast CGI) (теоретически любой веб-сервер, допускающий исполнение PHP-кода)

СУБД: MySQL, PostgreSQL (в принципе несложна адаптация к другим реляционным СУБД, например IBM DB2 [12])

PHP версии 4.3.3 и выше (для совместимости со всеми сторонними модулями рекомендуется применять PHP 5, вместо PHP 4). Drupal 7 требует PHP 5.2.4 и выше

2.7 Разработка web-приложения


Одним из значимых элементов любого приложения является пользовательский интерфейс. Удобство и простота его реализации во многом определяют успех любого проекта. Неудачная подборка цветовой гаммы, в том числе несочетающихся цветов, бывает причиной нежелания пользователей посещать даже насыщенный полезной информацией web-ресурс. Для облегчения вывода текста созданы каскадные таблицы стилей. А в качестве языка программирования используется PHP, эффективно взаимодействующий с базами данных и позволяющий реализовывать серьезные проекты.

В качестве цветовой гаммы выбраны синие и оранжевые цвета. Подобраны оттенки, достаточно хорошо гармонирующие друг с другом. Текст отображен шрифтом семейства Verdana, Arial, Sans-serif черным или темно-серым цветом.

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

Верхняя часть для всех страниц одинаковая, выполнена в синих оттенках. Здесь изображены логотип приложения и название. Внешний вид этой части страницы показан на рисунке 5.



Рисунок 5. Заголовочная часть пользовательского интерфейса
В нижней части расположено пользовательское меню с ниспадающими подменю. Элементы меню выполнены в светло-синем стиле, подсветка активного пункта осуществляется оранжевым цветом. Меню написано на языке java-скрипт и взято с сайта бесплатных шрифтов. Оно реализовано в файле popup_me. js, к которому прикрепляются файлы содержимого меню (menu. php - для основного меню, menu_adm. php - для меню администрирования) и содержимого подменю (menu_rli. js - для подменю основного меню, menu_rli_adm. js - для подменю меню администрирования). Внешний вид меню представлен на рисунке 6.

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



Рисунок 6. Информативная панель

В нижней части страницы отображается строка статуса, на которой представлена информация о web-дизайнере (рисунок 8).


Рисунок 7. Строка статуса
Цвет рабочей области страницы - синий, для лучшего восприятия пользователем темного текста. Элементы рабочей области, содержащие информацию. Текст фрейма темно-серого цвета, а ссылки на другие страницы - синего. Внешний вид рабочей области страницы показан на рисунке. 8



Рисунок 8. Рабочая область страницы
В программе для удобства вывода интерфейсных элементов используются каскадные таблицы стилей CSS. Все стили хранятся в файле rli_style. css. Присоединение таблицы стилей к странице осуществляется следующим образом:



Вывести стиль применительно к элементу страницы можно, задав свойству class элемента название стиля, например, class=\"buttonOrange\".

Для создания стиля необходимо добавить в файл rli_style. css строку стиля в следующем виде:

Название стиля {Свойство стиля: Значение; Свойство стиля: Значение; }

Все файлы приложения размещаются в корневом каталоге сайта. Проект содержит несколько подкаталогов:

  • config, каталог с файлами конфигурации Apache и MySQL, а также тестовую базу данных;

  • data, хранит файлы описания и картинки курсов;

  • dbedit, хранит скрипты для создания базы данных (db_create_rli. php);

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

  • images, хранит все файлы изображений, используемые в приложении;

  • news, в котором хранятся файлы новостей для таблицы news.

Все скрипты PHP заключаются в скобки . Язык позволяет формировать страницы из нескольких отдельных составляющих. Для этого используются функции include и require. Например, скрипт



Включает в страницу текст файла header. php.

Практически все страницы приложения сформированы следующим образом:

Создается пустой файл нужной страницы с тэгами , и ;<br /><br />К нему подключается файл header. php, в котором хранится скрипт, отображающий заголовочную часть с логотипом и названием сайта;<br /><br />Далее подключается файл body_left. php, с содержимым левой части страницы.<br /><br />Выводится основная часть страницы в виде Название Страницы_right. php;<br /><br />Формируется нижняя строка из файла buttom. php. <br /><br />В свою очередь файл НазваниеСтраницы_right. php содержит фреймы для вывода данных. Каждый фрейм включает заголовочную часть из файла body_list_header. php, затем выводится текст заголовок, нижняя часть строки заголовка body_list_after_header. php, текст фрейма и нижняя часть фрейма body_list_footer. php. <br /><br />Для вывода данных используется функция echo - это функция, которая отправляет браузеру текст. Между словом и символом конца строки "; " помещается строка, которая заключается в кавычки. Текст и тэги HTML, находящиеся внутри кавычек, отправляются браузеру. Если в тексте используется символ кавычки или прямой слэш, то перед ними помещается еще один слэш, т.е./” или // Таким образом выводятся и другие служебные символы. <br /><br />Чаще всего серверные скрипты используются для обработки результатов заполнения форм. Например, в гостевой книге посетитель вводит данные в форму, которая затем обрабатывается на сервере. Отвечая на какой-либо вопрос пользователь, аналогично, устанавливает значение определенных полей формы. <br /><br />Каждое поле ввода имеет атрибут NAME, которое будет передано в обработчик вместе со своим значением. Существует два метода передачи данных: GET и POST. Их <a href="/philips-revolution/index.html" title="Philips Revolution">отличие состоит в том</a>, что при использовании метода GET значения полей присоединяются к URL, указанному в атрибуте ACTION. Происходит это таким образом: <br /><br />http: // localhost/action. php? имя=значение&... имя=значение<br /><br />Схема состоит в том, что для каждого элемента, имеющего имя (NAME), создается пара NAME=VALUE, где VALUE - конкретное значение соответствующего элемента формы. Для кнопок и переключателей передается только значение выбранного элемента. Указанные выше пары соединяются в виде символьных последовательностей, причем в качестве разделителей пар используется символ &. Сформированный таким образом набор символов пересылается как часть URL-запроса и носит название строка запроса. <br /><br />Внутри символьной последовательности могут содержаться символы, недопустимые в составе URL-запроса. Известно, что ASCII-символы кодируются двумя шестнадцатиричными цифрами. Поэтому недопустимые в составе запроса символы заменяются триадами из знака % и 2-х цифр шестнадцатиричной системы счисления, соответствующих этому символу. <br /><br />Пары "имя=значение" создаются для каждого элемента ввода, для которого указано имя атрибутом NAME. В случае использования метода POST значения полей передаются в заголовке запроса к серверу. Формат передачи при этом методе нам не интересен, значения передаются "незаметно" для обычного пользователя. <br /><br />При исполнении скрипта на языке PHP создаются переменные с именами, соответствующими именам полей и содержащие соответствующие значения. <br /><br />Cуществует специальный тип поля HIDDEN. Это поле, которое не выводится на экран, но, если ему присвоено имя атрибутом NAME, значение его передается в форму. Это бывает полезно, например, когда один обработчик может производить не одно, а несколько действий. С помощью такого поля можно задать тип действия, которое мы хотим произвести с данными формы. <br /><br />Теперь рассмотрим, как значения и состояния этих элементов передаются в обработчик. <br /><br />Введенное значение в поле TEXT передается в виде: имя=значение. В обработчике значение можно получить из переменной $имя. Для поля HIDDEN передача параметров осуществляется аналогично. <br /><br />CHECKBOX - если флажок установлен, то передается значение on, если флажок не установлен, то переменная не передается вообще. Таким образом, установку флажка в скрипте можно проверить, сравнив значение переменной $имя с "on". Переменная и строка выглядят аналогично элементу типа TEXT. <br /><br />SUBMIT - кнопка SUBMIT, как ни странно, тоже может передавать значение в обработчик. Значение устанавливается из атрибута VALUE. Все остальное аналогично полю типа TEXT. <br /><br />PHP предоставляет еще одну интересную особенность. Мы можем каждому элементу присвоить имя переменной массива. <br /><br />В этом случае мы сможем получить доступ к значениям, обращаясь к элементам ассоциативного массива: <br /><br />$personal ["name"] и $personal ["email"]. <br /><br />Кроме того, если включена директива PHP <? php_track_vars? >, то, при передаче значений, будут заполнены массивы $HTTP_GET_VARS и $HTTP_POST_VARS, для соответствующих методов передачи переменных в обработчик. <br /><br /><h2>2.8 Взаимодействие приложения с web-сервером</h2> <br />Этапы взаимодействия данного приложения с web-сервером следующие: <br /><br />Пользователь с помощью браузера формирует запрос на получение документа и через сеть Интернет посылает его на Web-сервер. <br /><br />Сервер извлекает документ (форму) из своей базы данных и через сеть Интернет посылает его пользователю (клиенту). <br /><br />Клиент с помощью браузера заносит в документ необходимые данные и вновь направляет его через сеть web-серверу. <br /><br />Сервер с помощью CGI-программы анализирует полученный документ и (при необходимости) направляет его для обработки в соответствующее приложение. <br /><br />Приложение, используя CGI-переменные, обрабатывает направленный в него документ и возвращает серверу выходную информацию. <br /><br />Сервер передает выходную информацию клиенту. <br /><br />Клиент (web-браузер) получает выходную информацию, которая отображается у него и может быть оценена и использована. <br /><br />Таким образом, пользователь (клиент) имеет возможность не только получать информацию (документы) от сервера, но и передавать свои данные на сервер, где с помощью соответствующего приложения, установленного на Web-узле, эти данные будут обработаны, а клиент получит результаты обработки данных. Такая система взаимодействия обеспечивает принципиально более высокий уровень интерактивности в системе клиент-сервер, и реализацию дистанционной обработки данных клиента. <br /><br />CGI-программа создает динамический (виртуальный) гипертекстовый документ или же формирует ссылку на уже имеющийся документ и дополняет его передачей результатов. Чаще всего для передачи данных от удаленного пользователя Web-серверу используются HTML-формы. Именно с их помощью организуется диалог между браузером пользователя и Web-сервером удаленного узла сети. Такой диалог позволяет осуществить важнейшие операции в сети Интернет. <br /><br />Web-сервер, получив URL-запрос от клиента, присваивает переменной среды QUERY_STRING значение строки запроса и вызывает CGI-программу, указанную в первой части запроса. Затем CGI-программа может обратиться к переменной среды QUERY_STRING, чтобы осуществить обработку закодированной в ней информации. <br /><br />Извлечение данных из таблицы осуществляется в цикле while() с помощью функции mysql_fetch_row, в качестве параметра которой подается массив $result, хранящий результат выполнения строки запроса выборки данных из таблиц. Функция выбирает строку из массива, которая записывается в переменную $row и автоматически переходит на следующую строку. При следующем вызове mysql_fetch_row, выбирается следующая строка из массива, и так далее до тех пор, пока не будет достигнут конец массива. В этом случае mysql_fetch_row вернет значение false, которое послужит сигналом, что все записи выбраны, и можно завершить цикл. <br /><br />К каждому столбцу в массиве $row <a href="/chislo-protonov-v-yadre-m-opredelyaet-ego-zaryad-i-sootvetstvu-v3/index.html" title="Число протонов в ядре (М) определяет его заряд и соответствует порядковому (атомному) номеру элемента в периодической системе">можно обратиться по его порядковому номеру</a>, который заключается в квадратные скобки, например, $row , в которой хранятся значения второго столбца таблицы данных. Элементы массивов нумеруются с 0, а не с 1. <br /><br />Функция mysql_fetch_array() позволяет обращаться к каждому полю массива не по номеру, а по имени, например, $row ["user"] ("user" - название столбца в базе данных и в массиве). <br /><br />Cookie - это переменная, которая хранится на диске у пользователя. Cookies используются для хранения небольшой по объему информации у клиента, например, его логина и другой информации. <br /><br />Для установки Cookies используется функция SetCookie. В общем случае для этой функции можно указать целых шесть параметров, но обязательный из них является только один - name: <br /><ul> <li/> <br />name - задает имя (строка), закрепленное за Cookie; <br /><li/> <br />value - определяет значение переменной (строка); <br /><li/> <br />expire - время жизни переменной (целое число). Если этот параметр не указан, Cookie будет "жить" до конца сессии, то есть до закрытия браузера. Если время указано, то, когда оно наступит, Cookie самоуничтожится; <br /><li/> <br />path - путь к Cookie (строка); <br /><li/> <br />domain - домен (строка). В качестве значения устанавливается имя хоста с которого установили; <br /><li/> <br />secure - передача через HTTPS-соединение. <br /></ul> <br />Обычно используются только три первые параметра. <br /><br />При использовании Cookies нужно иметь в виду, что Cookies должны быть установленными до первого вывода сценария (будь то оператор echo или вывод какой-нибудь функции). Поэтому желательно устанавливать Cookies в самом начале сценария. Дело в том, что Cookies устанавливаются с помощью определенного заголовка сервера, а если вы выводите что-нибудь, то это означает, что начинается тело документа. В результате Cookies не будут установлены. <br /><br />Получить доступ к Cookies достаточно просто. Все они хранятся в переменной окружения НТТР_СООКIЕ. Если мы установили несколько Cookies, то в переменной НТТР_СООКIЕ они будут перечислены через "; " (через точку с запятой). Например: <br /><br />mycookiel=valuel; mycookie2=value2<br /><br />Для чтения значения Cookies можно обращаться к ним, как к обыкновенным переменным. Например: echo $user_name_. Только необходимо проверить существование переменной. <br /><br />В работе Cookies используются для хранения данных логина пользователя, вошедшего в систему, значения параметра, вошел ли пользователь в систему (login_reg) и значения параметра, является ли пользователь администратором (login_admin). Значения переменных хранятся соответственно в Cookies user_name_, login_reg, login_admin. Это очень удобно, так как доступ к значению переменной, заданной Cookie, можно получить с любой страницы, при этом нет необходимости предавать их через поля. Cookie создаются на период сессии работы с системой, при выходе из системы они автоматически удаляются. <br /><br />Навигация по сайту организована средствами меню, расположенных слева и справа страницы. Меню состоит из 8 пунктов. <br /><br />Пункт "Главное" включает в себя научные статьи, контактные данные. Их значения остаются постоянными. <br /><br />Пункт "Дело техники" включает в себя информацию о последних достижениях в сфере технической науки. <br /><br />Пункт "Научный подход" включает в себя информацию о о последних достижениях в сфере естественной науки. <br /><br />Пункт "Открытый космос" включает в себя информацию о достижения ученых в сфере космической науки. Все указанные свойства, кроме являются динамическими, т.е. могут меняться. <br /><br />Пункт "Прошлая жизнь" включает в себя информацию о прошлой жизни человечества. Следы истории древних городов и археологические находки древних людей. <br /><br />Пункт "Жажда творчества" включает в себя информацию о последних достижениях в области нано технологии. <br /><br />Пункт "Секрет фирмы" содержит информацию о новых продукциях фирм производителей в области кибернетики. <br /><br />Пункт "Личный опыт" содержит информацию о последних достижениях в сфере роботостроения. <br /><br />Меню "User login" содержит информацию о зарегистрированных пользователях. <br /><br />Если войти в систему под логином администратора (по умолчанию логин "admin" пароль "cneltyn"), то откроется скрытое подменю "Админ". <a href="/laboratornaya-rabota-2-realizaciya-generatora-parolej-s-zadann/index.html" title="Лабораторная работа №2 Реализация генератора паролей с заданными требованиями">Администратором может быть пользователь подсистемы</a>, которому в таблице базы данных "users" задано значение “y” поля "u_admin". <br /><br /><img src="583089_html_19568663a323c93d.png" name="image7" align="bottom" width="613" height="313" border="0"/> <br /><br />Рисунок 9. Меню "Админ"<br />Администратор имеет возможность просмотра статистики системы (рисунок 9). Здесь отображается информация о количестве зарегистрированных пользователей. <br /><br /><img src="583089_html_9c67ab5b2250715a.png" name="image8" align="bottom" width="460" height="284" border="0"/> <br /><br />Рисунок 10. Страница "Наши читатели"<br /><h2>2.9 Предложения по размещению приложения в сети Интернет</h2> <br />При выборе хостинга необходимо учитывать поддержку языка PHP и сервера баз данных MySQL. Предлагается использовать web-хостинг Agava. ru. Из предлагаемых тарифных планов наиболее интересным является тарифный план Normal. Он включает в себя поддержку PHP версии 4, поддержку CGI скриптов (скрипты могут быть написаны на shell, C, Perl и других языках). В рамках этого тарифного плана предоставляется доступ к серверу баз данных MySQL и большое дисковое пространство для сайта. <br /><br />Предлагается бесплатный домен. При покупке хостинга по тарифному плану "Normal" можно бесплатно получить домен в любой из предлагаемых зон при оплате хостинга от трех месяцев. <br /><br />Трафик на данном тарифном плане "Normal" неограничен. Понятие "неограниченный трафик" означает то, что трафик никаким образом не ограничивается. Входящий и исходящий, российский и затенгеежный трафик не дифференцируются между собой. <br /><br />Также среди хостинг предоставляет возможности: <br /><ul> <li/> <br />управлять (создавать, редактировать, удалять) почтовыми аккаунтами в вашем домене; <br /><li/> <br />читать и отправлять почту через веб-интерфейс; <br /><li/> <br />активировать фильтрацию СПАМа для вашего аккаунта; <br /><li/> <br />управлять планировщиком заданий (cron) через веб-интерфейс; <br /><li/> <br />создавать поддомены 3-го уровня в вашем домене (кол-во доменов 3-го уровня неограничено); <br /><li/> <br />создавать, редактировать, удалять базы данных MySQL, а также работать с БД MySQL через PHPMyAdmin; <br /><li/> <br />администрировать свой сайт с помощью файл-менеджера (загрузка, редактирование файлов по HTTP протоколу); <br /><li/> <br />создавать дополнительных ftp-пользователей имеющих ограниченный или полный доступ к сайту, разрешать или запрещать анонимный ftp-доступ; <br /><li/> <br />управлять веб-сервером Apache (mime-types, apache handlers, авторизация, индексы каталогов, страницы HTTP-ошибок, hotlink-защита, запрет доступа с определенных IP и. т.п.); <br /><li/> <br />SSH через браузер - администрирование вашего сервера через командную строку с использованием Java-апплета для вашего броузера; <br /><li/> <br />просматривать статистические отчеты о посещениях вашего сайта сгенерированные программами Analog или Webalizer; <br /><li/> <br />работа с почтой через веб-интерфейс. Поддерживается возможность чтения, отсылки почты, создания папок, настройки правил сортировки, настройка сборщика внешней почты (сбор сообщений со сторонних почтовых ящиков в ваш почтовый ящик у нас). <br /></ul> <br /><br />
1   2   3   4   5


написать администратору сайта