Разработка сайта Администрации Казачинско-Ленского района
PNG. Есть еще третий графический формат, конкурирующий за постоянное использование в Web. Это формат PNG — Portable Network Graphic, который, несмотря на некоторые достоинства, с 1994 г. находится более или менее в тени. Только недавно браузеры начали поддерживать PNG как встроенную графику, но PNG имеет все шансы стать очень популярным форматом в Web. Именно поэтому он включен здесь в «большую… Читать ещё >
Разработка сайта Администрации Казачинско-Ленского района (реферат, курсовая, диплом, контрольная)
Разработка сайта Администрации Казачинско-Ленского района Содержание:
- Введение
- Цель создания веб-сайта
- Задачи
- 1. Принцип работы Интернета
- 1.1 Протоколы передачи данных
- 1.2 Семейство ТСР/IP
- 1.3 Адресация в Интернете
- 1.4 IP адрес
- 1.5 Доменное имя
- 1.6 Порт
- 1.7 Сервер
- 1.8 Узел
- 1.9 Сетевой домен
- 1.10 Провайдер
- 1.11 Хост
- 1.12 Виртуальный хост
- 1.13 Хостинг-провайдер (хостер)
- 1.14 Страница (или HTML-страница)
- 2. Проектирование сайта
- 2.1 Выбор языка программирования
- 2.2 Программы используемые для проектирования сайта
- 2.3 Основы разработки web-сайта
- 2.4 Основы программирования PHP
- 2.5 Совместная работа PHP и MySQL
- 2.6 Главная страница сайта
- 2.7 Авторизация пользователей
- 2.8 Опрос пользователей и голосования
- 2.9 Размещение сайта в Интернете
- 3. Экономическая часть
- 4. Безопасность и экологичность проекта
- Заключение
- Список литературы
В настоящее время все больше и больше получает развитие Интернет. Многие предприятия, простые люди, создают сайты, где помещают информацию, которая, по их мнению, будет полезна другим людям. Любой человек, имеющий навык работы с компьютером и любым из браузеров, может в любой момент найти в Интернете интересующую его информацию. Для этого может использоваться такие поисковые сайты как Rambler, Aport, Yandex, Google.
Информация, которая может быть размещена на сайте может быть различна, от простого личного дневника или фотоальбома, до подборки различных информационных статей и документов. Доступ к такой информации через Интернет намного быстрее, да и не всякую статью можно найти в библиотеке или журнале.
В Казачинско-Ленском районе есть своя газета «Киренга», но нет своего радио и телеканала, поэтому некоторые новости из жизни поселка проходят не заметно для многих посельчан. Некоторые объявления, статьи и информацию экономического характера Администрация района печатает в местной газете. Но этого бывает недостаточно.
Поэтому было принято решение о разработке и написании сайта Казачинско-Ленского района, который имел бы следующее:
· статьи из истории создания поселка;
· информацию о экономике поселка;
· информацию о предприятиях поселка;
· документы, постановления и законы районного и местного самоуправления необходимые для предприятий и граждан поселка;
· возможности ведения опроса посетителей сайта о вопросах, касающихся жизни в районе;
· информацию о последних новостях из жизни поселка;
Сайт должен иметь удобную навигацию по разделам сайта и возможность его администрирования.
Цель создания веб-сайта
Основной целью создания веб-сайта является разработать и написать сайт, который имел бы:
· хорошую информационную базу о районе, а также о поселках и населенных пунктах входящих в наш район;
· возможность быстрого обновления информационных ресурсов доступных на сайте;
· возможность ведения опроса читателей сайта для ведения статистической базы;
Задачи
Для успешной разработки данного веб-сайта необходимо решить следующие частные задачи:
· ознакомиться с современными Интернет-технологиями и, по возможности, использовать их в своей разработке;
· изучить программный инструментарий, применяемый для разработки и создания Web-сайтов такие как PHP, MySQL, Apach сервер;
· выявить и учесть методы и способы представления на Web-страницах различных видов информации, не препятствующие их доступности;
· ознакомиться с основными правилами и рекомендациями по разработке и созданию Web-сайтов и неукоснительно следовать им в своей практике;
· определиться со структурой Web-страниц;
1 Принцип работы Интернета
1.1 Протоколы передачи данных
Как и любая компьютерная сеть, Интернет основан на множестве компьютеров, соединенных друг с другом проводами, через спутниковый канал связи и т. д. Однако, как известно, одних проводов для передачи информации недостаточно — передающей и принимающей сторонам необходимо также придерживаться ряда соглашений, позволяющих строго регламентировать передачу данных, а также гарантировать, что эта передача пройдет без искажений. Такой набор правил называется протоколом передачи. Грубо говоря, протокол — это набор правил, который позволяет системам, взаимодействующим в рамках Интернета, обмениваться данными в наиболее удобной для них форме. Что же из себя представляют основные протоколы Интернета?
Необходимость некоторой стандартизации возникла чуть ли не с самого момента возникновения компьютерных сетей. Действительно, подчас одной сетью объединены компьютеры, работающие под управлением не только различных операционных систем, но нередко имеющие и совершенно различную архитектуру процессора, организацию памяти и т. д.
Разумеется, для разных целей существуют различные протоколы. В Web-программировании таковым является протокол TCP (Transmission Control Protocol — Протокол управления передачей данных), а точнее, протокол HTTP (Hypertext Transfer Protocol — Протокол передачи гипертекста), базирующийся на TCP. Протокол HTTP как раз и задействуется браузерами и Web-серверами.
На рисунке 1 приведена примерная схема того, что происходит при отправке запроса браузером пользователя на некоторый Web-сервер в Интернете.
Рисунок 1 — Организация обмена данными в Интернете
Каждый из протоколов в идеале «ничего не знает» о том, какой протокол «стоит над ним». Например, протокол IP (который обеспечивает несколько более простой сервис по сравнению с TCP) не использует возможности протокола TCP, а TCP, в свою очередь, «не догадывается» о существовании протокола HTTP (именно его задействует браузер и понимает Web-сервер, на рисунке 1 протокол HTTP не обозначен). Применение такой организации позволяет заметно упростить ту часть операционной системы, которая отвечает за поддержку работы с сетью.
1.2 Семейство ТСР/IP
В сети Интернет в качестве основного выбирается протокол TCP, хотя, конечно, этот выбор обусловлен скорее историческими причинами, нежели его действительными преимуществами (впрочем, преимуществ у TCP также предостаточно). Он ни в коей мере не претендует на роль низкоуровневого — наоборот, в свою работу он вовлекает другие протоколы, например, IP (в свою очередь, IP также базируется на услугах, предоставляемых некоторыми другими протоколами). Протоколы TCP и IP настолько сильно связаны, что принято объединять их в одну группу под названием семейство TCP/IP (в него включается также протокол UDP). Ниже приводятся основные особенности протокола TCP, входящего в семейство.
· Корректная доставка данных до места назначения гарантируется — разумеется, если такая доставка вообще возможна. Даже если связь не вполне надежна (например, на линии помехи оттого, что в кабель попала вода, замерзшая зимой и разорвавшая оболочку провода), «потерянные» фрагменты данных посылаются снова и снова до тех пор, пока вся информация не будет передана.
· Передаваемая информация представлена в виде потока — наподобие того, как осуществляется обмен с файлами практически во всех операционных системах. Иными словами, мы можем «открыть» соединение и затем выполнять с ним те же самые операции, к каким мы привыкли при работе с файлами. Таким образом, программы на разных машинах (возможно, находящихся за тысячи километров друг от друга), подключенных к Интернету, обмениваются данными так же не принужденно, как и расположенные на одном компьютере.
· TCP/IP устроен так, что он способен выбрать оптимальный путь распространения сигнала между передающей и принимающей стороной, даже если сигнал проходит через сотни промежуточных компьютеров. В последнем случае система выбирает путь, по которому данные могут быть переданы за минимальное время, основываясь при этом на статистическую информацию работы сети и так называемые таблицы маршрутизации.
· При передаче данные разбиваются на фрагменты — пакеты, которые и доставляются в место назначения по отдельности. Разные пакеты вполне могут следовать различными маршрутами в Интернете (особенно если их путь пролегает через десятки серверов), но для всех них гарантирована правильная «сборка» в месте назначения (в нужном порядке). Как уже упоминалось, принимающая сторона в случае обнаружения «недосдачи» пакета запрашивает передающую систему, чтобы та передала его еще раз. Все это происходит незаметно для программного обеспечения, эксплуатирующего TCP/IP.
1.3 Адресация в Интернете
Компьютеров в Интернете много, это факт. Так что вопрос о том, как можно их эффективно идентифицировать в пределах этой сети, оказывается далеко не праздным. Кроме того, практически все современные операционные системы работают в многозадачном режиме (поддерживают одновременную работу нескольких программ). Это значит, что возникает также вопрос о том, как нам идентифицировать конкретную систему или программу, желающую обмениваться данными через Интернет. Эти две задачи решаются стеком TCP/IP при помощи IP-адреса и номера порта.
1.4 IP адрес
Любой компьютер, подключенный к Интернету и желающий обмениваться информацией со своими «сородичами», должен иметь некоторое уникальное имя, или IP-адрес. IP-адрес выглядит примерно так:
192.168.232.56
Как мы видим, это — четыре 8-разрядных числа (то есть принадлежащих диапазону от 0 до 255 включительно), соединенные точками. Не все числа допустимы в записи IP-адреса: ряд из них используется в служебных целях (например, адрес 127.0.0.1 выделен для обращения к локальной машине — той, на которой был произведен запрос, а число 255 соответствует широковещательной рассылке в пределах текущей подсети).
1.5 Доменное имя
И все-таки обычным людям довольно неудобно работать с IP-представлением адреса. Действительно, куда как проще запомнить символьное имя, чем набор чисел. Чтобы облегчить простым пользователям работу с Интернетом, придумали систему DNS (Domain Name System — Система имен доменов).
Итак, при использовании DNS любой компьютер в Сети может иметь не только IP-адрес, но также и символическое имя. Выглядит оно примерно так: www.somehost.msu.su
То есть, это набор слов (их число произвольно), опять же соединенных точкой. Каждое такое сочетание слов называется доменом N-го уровня (например, su — домен первого уровня, msu. su — второго, somehost.msu.su — третьего и т. д.)
Вообще говоря, полное DNS-имя выглядит немного не так: в его конце обязательно стоит точка, например: www.somehost.msu.su.
Именно такое (вообще-то, и только такое) представление является правильным, но браузеры и другие программы часто позволяют нам опускать завершающую точку. В принятой нами терминологии будем называть эту точку доменом нулевого уровня, или корневым доменом.
Нужно заметить, что одному и тому же IP-адресу вполне может соответствовать сразу несколько доменных имен. Каждое из них ведет в одно и то же место — к единственному IP-адресу. Благодаря протоколу HTTP 1.1 Web-сервер, установленный на машине и откликающийся на какой-либо запрос, способен узнать, какое доменное имя ввел пользователь, и соответствующим образом среагировать, даже если его IP-адресу соответствует несколько доменных имен. В последнее время HTTP 1.1 применяется практически повсеместно, поэтому все больше и больше серверов используют его в качестве основного протокола для доступа к Web.
Интересен также случай, когда одному и тому же DNS-имени сопоставлены несколько разных IP-адресов. В этом случае служба DNS автоматически выбирает тот из адресов, который, по ее мнению, ближе всего расположен к клиенту, или который давно не использовался, или же наименее загружен (впрочем, последняя оценка может быть весьма и весьма субъективна). Эта возможность часто задействуется, когда Web-сервер становится очень большим (точнее, когда число его клиентов начинает превышать некоторый предел) и его приходится обслуживать сразу нескольким компьютерам. Такая схема используется, например, на сайте компании Netscape.
Как же ведется поиск по DNS-адресу? Для начала он преобразуется специальными DNS-серверами, раскиданными по всему миру, в IP-адрес. Давайте посмотрим, как это происходит. Пусть клиентом выдан запрос на определение IP-адреса машины www.host.ru. (еще раз обратите внимание на завершающую точку! — это не конец предложения). Чтобы его обработать, первым делом посылается запрос к так называемому корневому домену (точнее, к программе — DNS-серверу, запущенному на этом домене), который имеет имя «.» (на самом деле его база данных распределена по нескольким компьютерам, но для нас это сейчас несущественно). Запрос содержит команду: вернуть IP-адрес машины (точнее, IP-адрес DNS-сервера), на котором расположена информация о домене ru. Как только IP-адрес получен, по нему происходит аналогичное обращение с просьбой — определить адрес, соответствующий домену host внутри домена ru внутри корневого домена «.». В конце у предпоследней машины запрашивается IP-адрес поддомена www в домене somehost.ru.
Представьте, какое бы произошло столпотворение на корневом домене «.», если бы все запросы на получение IP-адреса проходили через него. Чтобы этого избежать, практически все машины в Сети кэшируют информацию о DNS-запросах, обращаясь к корневому домену (и доменам первого уровня — ru, com и т. д.) лишь изредка для обновления этого кэша. Например, пусть пользователь, подключенный через модем к провайдеру, впервые соединяется с машиной www.host.ru. В этом случае будет передан запрос корневому домену, а затем, по цепочке, поддомену host и, наконец, домену www. Если же пользователь вновь обратится к www.host.ru., то сервер провайдера сразу же вернет ему нужный IP-адрес, потому что он сохранил его в своем кэше запросов ранее. Подобная технология позволяет значительно снизить нагрузку на DNS-серверы в Интернете. В то же время у нее имеются и недостатки, главный из корых — вероятность получения ложных данных, например, в случае, если хост host.ru. только что отключился или сменил свой IP-адрес. Так как кэш обновляется сравнительно редко, мы всегда можем столкнуться с такой ситуацией.
1.6 Порт
До сих пор мы расценивали машины, подключенные к Интернету, как некие неделимые сущности. Так оно, в общем-то, и есть (правда, с некоторыми оговорками) с точки зрения протокола IP. Но TCP использует в своей работе несколько другие понятия. А именно, для него отдельной сущностью является процесс — программа, запущенная где-то на компьютере в Интернете. Именно между процессами, а не между машинами, и осуществляется обмен данными в терминах протокола TCP. Мы уже знаем, как идентифицируются отдельные компьютеры в Сети. Осталось рассмотреть, как же TCP определяет тот процесс, которому нужно доставить данные.
Пусть на некоторой системе выполняется программа (назовем ее Клиент), которая хочет через Интернет соединиться с какой-то другой программой (Сервером) на другой машине в Сети. Для этого должен выполняться ряд условий, а именно:
· программы должны «договориться» о том, как они будут друг друга идентифицировать;
· программа Сервер должна находиться в режиме ожидания, что сейчас к ней кто-то подключится;
На самом деле программа Сервер, как только она запускается, говорит драйверу TCP, что она собирается использовать для обмена данными с Клиентами некоторый идентификатор, или порт, целое число в диапазоне от 0 до 65 535 (именно такие числа могут храниться в ячейке памяти размером в 2 байта). TCP регистрирует это в своих внутренних таблицах — разумеется, только в том случае, если какая-нибудь другая программа уже не «заняла» нужный нам порт (в последнем случае происходит ошибка). Затем Сервер переходит в режим ожидания поступления запросов, приходящих на этот порт. Это означает, что любой Клиент, который собирается вступить в «диалог» с Сервером, должен знать номер его порта. В противном случае TCP-соединение невозможно: куда передавать данные, если не знаешь, к кому подключиться?
Теперь посмотрим, какие действия предпринимает Клиент. Он, как мы условились, знает следующее:
· IP-адрес машины, на которой запущен Сервер;
· номер порта, который использует Сервер.
Как видим, этой информации вполне достаточно, поэтому Клиент посылает драйверу TCP команду на соединение с машиной, расположенной по заданному IP-адресу с указанием нужного номера порта. Поскольку Сервер «на том конце» готов к этому, он откликается, и соединение устанавливается.
1.7 Сервер
Сервер — любой отдельно взятый компьютер в Интернете, который позволяет другим машинам, грубо говоря, использовать себя в качестве «посредника» при передаче данных. На многих хранится какая-то информация, доступная или нет извне.
Сервер — это именно компьютер («железо»), а не логическая часть Сети, он может иметь несколько различных IP-адресов (не говоря уже о доменных именах), так что вполне может выглядеть из Интернета как несколько независимых систем.
Отличительной чертой сервера является то, что он использует один-единственный стек TCP/IP, т. е. на нем запущено только по одному «экземпляру» драйверов протоколов.
У термина «сервер» есть и еще одно, совершенно другое, определение — это программа (в терминологии, TCP — процесс), обрабатывающая запросы клиентов. Например, приложение, обслуживающее пользователей WWW, называется Web-сервером. Как правило, из контекста будет ясно, что конкретно имеется в виду. Иногда такие программы называются сетевыми демонами.
1.8 Узел
Любой компьютер, подключенный к Интернету, имеет свой уникальный IP-адрес. Нет адреса — нет узла. Узел — совсем не обязательно сервер (типичный пример — клиент, подключенный через модем к провайдеру). Вообще, мы можем дать такое определение: любая сущность, имеющая уникальный IP-адрес в Интернете, называется узлом. С этой (логической) точки зрения Интернет можно рассматривать, как множество узлов, каждый из которых потенциально может связаться с любым другим. Заметьте, что на одной системе может быть расположено сразу несколько узлов, если она имеет несколько IP-адресов. Например, один узел может заниматься только доставкой и рассылкой почты, второй — исключительно обслуживанием WWW, а на третьем работает DNS-сервер.
Помните, мы говорили о том, что TCP использует термин «процесс», и каждый процесс для него однозначно идентифицируется IP-адресом и номером порта. Так вот, этот самый IP-адрес и есть узел.
1.9 Сетевой демон
Сетевой демон — это программа, работающая на сервере и занимающаяся обслуживанием различных пользователей, которые могут к ней подключаться. Иными словами, сетевой демон — это программа-сервер. Типичный пример — Web-сервер, а также FTPи Telnet-серверы.
1.10 Провайдер
Провайдер — организация, имеющая несколько модемных входов, к которым могут подключаться пользователи для доступа в Интернет. Все это обычно происходит не бесплатно (для пользователей, разумеется).
1.11 Хост
Хост — с точки зрения пользователя как будто то же, что и узел. В общем-то, эти понятия очень часто смешивают. Это обусловлено тем, что любой узел является хостом. Но хост — совсем не обязательно отдельный узел, если это — виртуальный хост.
Часто хост имеет собственное уникальное доменное имя. Иногда (обычно просто чтобы не повторяться) мы будем называть хосты серверами, что, вообще говоря, совершенно не верно. Фактически, все, что отличает хост от узла — это то, что он может быть виртуальным. Итак, еще раз: любой узел — хост, но не любой хост — узел.
1.12 Виртуальный хост
Это — хост, не имеющий уникального IP-адреса в Сети, но, тем не менее, доступный указанием какого-нибудь дополнительного адреса (например, его DNS-имени). В последнее время число виртуальных хостов в Интернете постоянно возрастает, что связано с повсеместным распространением протокола HTTP 1.1. С точки зрения Web-браузера (вернее, с точки зрения пользователя, который этим браузером пользуется) виртуальный хост выглядит так же, как и обычный хост — правда, его нельзя адресовать по IP-адресу.
К сожалению, все еще существуют версии браузеров, не поддерживающие протокол HTTP 1.1, которые соответственно не могут быть использованы для обращения к таким ресурсам.
1.13 Хостинг-провайдер (хостер)
Организация, которая может создавать хосты (виртуальные или обычные) в Интернете и продавать их различным клиентам, обычно за определенную плату. Существует множество хостинг-провайдеров, различающихся по цене, уровню обслуживания, поддержке telnet-доступа (то есть доступа в режиме терминала к операционной системе машины) и т. д. Они могут оказывать услуги по регистрации доменного имени в Интернете, а могут и не оказывать.
Нам так же по окончанию проектирования и написания сайта придется выбрать хостинг-провайдера. Далее мы обговорим условия, по которым мы будем его выбирать.
1.14 Страница (или HTML-страница)
Адресуемая из Интернета минимальная единица текстовой информации службы World Wide Web, которая может быть затребована у Web-сервера и отображена в браузере. Часто страница представлена отдельным HTML-документом, однако в последнее время число таких страниц постоянно сокращается — чаще они генерируются автоматически «на лету» какой-нибудь программой и тут же отсылаются клиенту.
Например, гостевая книга, в который пользователь может оставить текстовое сообщение, — пример страницы, не являющейся HTML-документом в обычном смысле.
Язык HTML (Hypertext Markup Language — Язык разметки гипертекста) позволяет вставлять в страницы ссылки на другие страницы. Щелкнув кнопкой мыши на поле ссылки, пользователь может переместиться к тому или иному документу.
2. Проектирование сайта
2.1 Выбор языка программирования
PHP лучше всего охарактеризовать как работающий на стороне сервера встроенный язык web сценариев, позволяющий разработчикам быстро и эффективно создавать динамические web-приложения. С позиций грамматики и синтаксиса PHP напоминает язык программирования C, хотя разработчики включили в него некоторые весьма полезные средства из других языков программирования, в том числе из Perl, Java и C++. Среди ценных заимствованных возможностей — поддержка регулярных выражений, мощные средства работы с массивами, объектно-ориентированная методология и обширная поддержка работы с различными базами данных.
За последние годы PHP прошел долгий путь от набора Perl скриптов, позволяющих следить за посетителями страницы, и до, написанного уже на языке С, одного из самых известных и широко распространенных скриптовых языков для создания сложных, динамических, интерактивных web-сайтов.
К настоящему моменту PHP стал одним из самых популярных скриптовых языков, используемых для разработки простых и средних по уровню сложности сайтов. Хотя встречаются и достаточно крупные и очень посещаемые ресурсы. Поддержка этого языка входит в состав услуг большинства виртуальных хостингов в России и других странах. А установка PHP под Windows является несложной задачей. Подобная доступность делает этот язык еще более привлекательным для разработки сайтов и вынуждает хостинговые компании устанавливать и поддерживать PHP. Вся эта ситуация, как вы понимаете, только играет на руку web-разработчикам. Меняя по каким-то причинам хостинг, вы без проблем найдете новый дом для вашего сайта, что не всегда будет легко в случае использования других языков, отличных от PHP.
2.2 Программы, используемые для проектирования сайта
Так как наш сайт будет целиком написан на языке программирования PHP с использованием базы данных MySQL нам будет необходимы следующие программы:
· сервер Apache;
· интерпретатор PHP;
· программы для использования MySQL;
Для скачивания этих программ из Интернета можно воспользоваться ссылками:
· официальный сайт Apache: http://www.apache.org;
· официальный сайт PHP: http://www.php.net;
· официальный сайт MySQL: http://www.mysql.com;
Мы воспользуемся комплексом программ «Денвер-2», который можно скачать по адресу http://denwer.ru. Данный комплекс позволяет запустить полноценный веб-сервер Apache с поддержкой PHP, Perl и сервер MySQL на машине, работающей под управлением MS Windows 95/98/Me/NT/2000/XP. При установке не требуется никакой настройки, комплекс может использоваться даже неподготовленными пользователями. Тем не менее, он может найти применение не только для обучения азам веб-программирования, но и для отладки интерактивных сайтов, программ, использующих базу данных MySQL, написанных на языках PHP и Perl.
Основное преимущество в том, что в данном комплексе PHP работает в качестве модуля веб-сервера Apache, что позволяет отлаживать программы авторизации пользователей и открывает доступ к ряду дополнительных возможностей. Необходимо отметить, что сторонними разработчиками чаще всего предлагается работать с интерпретатором PHP как CGI-программой, что несколько ограничивает возможности.
В написании сайта мы будем использовать PHP версии 4.
2.3 Основы разработки web-сайта
При разработке нашего веб-сайта мы будем придерживаться следующх основных правил:
Обеспечение доступности Web-страницы
При разработке Web-страницы фиксированного размера, вероятно, придется выбирать для нее размер экрана. Здравый смысл подсказывает, что страница должна быть доступна (и правильно отображаться) для максимально возможного числа пользователей. Следовательно, необходимо определить наиболее часто используемое разрешение дисплея и разработать страницу таким образом, чтобы страница гарантированно заполняла все рабочее пространство.
Большинство дизайнеров рекомендуют разрабатывать страницы в формате 640×480, чтобы при просмотре пользователям не пришлось применять горизонтальную прокрутку. Горизонтальная прокрутка всегда затрудняет восприятие, поэтому дизайнеры традиционно ее отвергают.
Все большее число разработчиков считает стандартным разрешение 800×600. И совсем единицы разрабатывают страницы для еще более высоких разрешений.
Мы будем указывать гарантированное разрешение экрана, которое будет правильно изображаться на большинстве современных компьютерах. Примем его за ширину экрана 780 точек на дюйм, так как разрешение 640×480, скорее всего, уже не используется. Так как у нас информационный сайт и статьи могут быть достаточно большими, вертикальное разрешение указывать не будем, а будем использовать вертикальный скроллинг экрана. Формат страницы задается строкой
Достойный уважения Web-дизайн включает разработку страниц, доступных для пользователей с ограниченными возможностями, в частности по зрению и слуху. Консорциум World Wide Web объявил об инициативе Web Accessibility Initiative (WAI), которая ставит целью сделать Web более доступным для всех пользователей. Однако успех данной инициативы зависит от участия в ней рядовых разработчиков, которые могут (или не могут) создать Web-сайты в соответствии с поставленными задачами.
Пользователи с ограниченными возможностями зрения могут использовать специальные устройства для увеличения изображения, находящегося на экране. В этом случае к дизайну не предъявляется никаких специальных требований. Многие люди с проблемами зрения используют текстовые браузеры (такие как Lynx) вместе с программным обеспечением, которое громко читает содержимое страницы. В любом случае основное внимание уделяется структуре документа и его тексту. Графическое содержимое может быть просто утеряно.
Так как программы, написанные на PHP вставляют в HTML код страницы, то специфику работы HTML мы должны изучить.
Средства HTML 4.0. Спецификация HTML 4.0 вводит ряд новых атрибутов и тегов, созданных специально для того, чтобы сделать Web-документы доступными для более широкого круга пользователей. Кратко перечислим некоторые новые возможности HTML 4.0. (Расширенный список возможностей размещен на сайте http://www.w3.org/WAI/References/HTML4-access, а полные спецификации данной версии — на сайте http://www.w3.org/TR/REC-html40).
HTML 4.0 предлагает следующие новые возможности, обеспечивающие доступность:
— дальнейшее разделение структуры документа и его внешнего представления. Информацию о стиле HTML 4.0 предлагает размещать в каскадных таблицах стилей;
— навигационная помощь, например, клавиши доступа и индексирование порядка табуляции для доступа к элементам страницы с использованием только клавиатуры;
— рекомендации, касающиеся новой клиентской карты-изображения, объединяющей графические и текстовые ссылки;
— новые теги и , которые помогают речевым и другим устройствам интерпретировать аббревиатуры и акронимы;
— возможность логически группировать строки и столбцы таблиц, снабжать их заголовками, резюме и длинными описаниями содержимого, облегчая интерпретацию таблиц;
— возможность группировать элементы управления формами и создавать длинные списки выбора, более ясные для восприятия. Элементы форм также доступны через клавиши табуляции и быстрого доступа;
— улучшенный механизм создания альтернативного текста. Атрибут alt теперь обязателен для тега . Чтобы обеспечить связь с более длинными текстовыми пояснениями к изображениям, введен атрибут longdesc.
Для HTML представлял собой ужасную смесь логических и оформительских тегов, несовместимых расширений и полностью перестал отвечать первоначальной концепции — представлять информацию на любом устройстве независимо от его характеристик по выводу информации.
Тогда была предпринята широкомасштабная стандартизация. В результате чего на свет явился стандарт HTML 3.2. Он не был революционным, а лишь расставил по местам все нововведения и выработал общие рекомендации для производителей браузеров. Революционные изменения были введены в новом стандарте — HTML 4.0 или, как его стали называть, Dynamic HTML. В обращение были введены слои, таблицы стилей и универсальная объектная модель браузера.
В новом стандарте попытались вернуться к истокам концепции HTML. Четвертая версия, как и первая, рекомендует создавать странички таким образом, чтобы они могли быть воспроизведены на любом устройстве — будь это 21″ дисплей или маленький черно-белый экран сотового телефона.
Каким же образом была решена проблема с представлением внешнего вида информации? В этом и заключается революционность подхода. Все оформление рекомендуется вынести во внешний стилевой файл. Основная же страничка будет содержать только информацию и ссылки на необходимые стили.
При показе странички конкретному устройству должна быть задействована соответствующая случаю таблица стилей. Для сотового телефона и дисплея компьютера они, разумеется, должны быть разными. В первом случае мы используем минимальное оформление, которое позволит представить информацию наиболее оптимально и компактно. Во втором же случае в нашем распоряжении имеется все богатство шрифтового и цветового оформления.
Таблицу стилей нужно написать всего один раз при создании сайта для каждого из устройств, на котором планируется вывод информации. К тому же таблица стилей может быть единой для целого сайта. И, следовательно, не нужно будет повторять одни и те же описания стилей на каждой из страниц.
Размещение всей стилевой информации в одном внешнем файле открывает нам и другие полезные возможности — ведь изменив содержимое только одного стилевого файла, мы можем в считанные секунды сменить весь дизайн сайта. Причем никаких других переделок не понадобится. Разумеется, это верно лишь в том случае, если первоначально сайт был спроектирован верно.
CSS2 (Cascading Style Sheets, Level 2) — самая последняя рекомендация по каскадным таблицам стилей, предоставляет механизмы для улучшенной интерпретации страниц неграфическими и не визуальными устройствами. Усовершенствования включают:
— механизмы, с помощью которых созданная пользователем таблица стилей может заменить все таблицы стилей более высоких уровней в каскаде. Это дает конечному пользователю возможность полностью управлять отображением. Пользователь получает возможность создавать настраиваемые таблицы стилей для вывода страниц в соответствии со специальными требованиями;
— специализированная поддержка для загружаемых шрифтов — таким образом, уменьшается тенденция помещать текст в графику для улучшения внешнего вида страницы;
— механизмы позиционирования и выравнивания, которые отделяют содержимое от внешнего представления. Эти таблицы стилей должны исключить некорректное использование тегов HTML для создания особых эффектов отображения. Теги HTML можно использовать для логической структуризации документа, делая его более простым для интерпретации не визуальными посредниками;
— средства управления для звукового вывода доставленной по Web информации;
— улучшенные средства навигации, такие как цифровые маркеры, которые можно добавлять в документ в целях ориентации.
Источники разработки доступных страниц
1) Официальный сайт WAI. На нем есть ряд полезных ссылок к источникам, связанным с проблемой доступности (http://www.w3.org/WAI).
2) Очень хороший источник статей и руководств для авторов HTML расположен на сайте Фонда слепых Юрия Рубинского, который является своеобразным оружием борьбы за права инвалидов на расширенный доступ к технологиям (http://www.уun.org/Webable).
Представление текста на Web-страницах
При создании профессиональной графики для Web используется текст со сглаженными краями. Сглаживание — это легкая размытость на неровных краях, сглаживающая переходы между цветами. Не сглаженные края, напротив, выглядят зазубренными и ступенчатыми. Исключением из этого общего правила является текст очень малого размера, (10 пунктов и меньше), применение сглаживания делает его практически неразличимым. Текст малых размеров будет выглядеть намного лучше без сглаживания.
Два комплекта шрифтов. При разработке Web-страницы средствами базового HTML есть два комплекта шрифтов; пропорциональный и шрифт фиксированной ширины. Проблема заключается лишь в том, что неизвестно, какой из них и какого размера будет использован при отображении.
Пропорциональный шрифт — иначе «шрифт переменной ширины» для каждого символа выделяет разное количество места в зависимости от его начертания. Например, в пропорциональном шрифте заглавная «W» занимает больше места в строке по горизонтали, чем прописная «I». Такие гарнитуры, как: Times, Helvetica и Arial являются примерами пропорциональных шрифтов.
Web-браузеры для большинства текстов на Web-странице, включая основной текст, заголовки, списки, цитаты и т. д., используют пропорциональные шрифты. Как правило, большие отрывки основного текста удобнее читать, когда они напечатаны пропорциональными шрифтами. Поскольку большинство пользователей не имеют времени заменить шрифты, установленные по умолчанию, с большой вероятностью можно предположить, что текст на вашей странице будет отображен шрифтом Times размером 10 или 12 пунктов (по умолчанию в Netscape) или Helvetica (по умолчанию в Microsoft Internet Explorer). Но это всего лишь общее правило.
Шрифт с фиксированной шириной предоставляет одинаковое место для всех символов шрифта. Заглавная «W» занимает не больше места, чем прописная «I». Примерами шрифтов фиксированной ширины являются гарнитуры Courier и Monaco. В Web-браузерах шрифты фиксированной ширины используются для отображения любого текста внутри следующих HTML-тегов: <�рге>, , , ,, <�хтр>.
Поскольку многие люди не меняют настройку шрифтов, установленную по умолчанию, текст, находящийся в указанных тегах, будет выведен одним из шрифтов типа Courier.
Текст в изображениях. Дизайнеры быстро поняли, что самый верный способ абсолютного контроля над шрифтами — поместить текст в изображение. Можно часто видеть заголовки, подзаголовки и объявления, выполненные в виде файлов GIF. Многие Web-страницы представлены исключительно в графике, которая содержит внутри себя весь текст страницы.
Преимущества использования графики вместо HTML-текста абсолютно очевидны:
— можно определять тип шрифта, размер, интерлиньяж, промежуток между буквами, цвет и выравнивание — все атрибуты, которые вызывают сложности только в HTML;
— ваша страница будет одинакова при выводе во всех графических браузерах.
Но у этого метода имеется ряд недостатков:
— изображение загружается дольше, чем текст, т.к. графические файлы обычно на несколько порядков больше, чем HTML-тексты, имеющие то же содержание;
— в неграфических браузерах содержание утрачивается. Пользователи, которые не могут (или не хотят) просматривать графику, не увидят и текста. Альтернативный текст (используется атрибут Alt) на месте графического изображения помогает, но его возможности ограничены и это не всегда надежный способ отождествления отсутствующей графической информации;
— информацию, находящуюся в изображении, нельзя индексировать или организовать ее поиск. В результате исключаются из документа важные части информации.
Размер шрифта. Обычно размер шрифта определяется в пунктах (72 пункта (пт) = 1 дюйм высоты шрифта) но, к сожалению, эти размеры не достаточно точно переводятся между платформами. Отчасти это происходит потому, что их операционные системы управляют дисплеями с различными разрешениями. Обычно Windows использует разрешение экрана 96 точек/дюйм, a MacOS — 72 точек/дюйм. Мониторы MultiScan допускают более высокое разрешение.
Шрифт на экране дисплея Масintosh имеет точно такой же размер, как и при печати (например, 12 пт Times на экране выглядит так же, как 12 пт Times на бумаге).
Для шрифтов Microsoft подобное соглашение не выполняется, и размер шрифта при выводе на экран больше, что облегчает чтение с дисплея. В результате шрифт размером 12 пт на Windows больше похож на печатный шрифт в 16 пунктов. Чтобы получить на Windows печатный размер 12 пт, вам нужно выбрать размер шрифта 9 пунктов (но тогда пользователи компьютеров Масintosh увидят текст почти неразборчивым, так как он будет отображен шрифтом размером всего 6,75 пт).
Представление графики на Web-страницах
На данный момент почти все изображения в Web, представлены в двух форматах: GIF и JPEG. Третий соперник, заслуживающий упоминания, формат PNG, борется за поддержку и внимание браузеров. Далее — краткий обзор «большой тройки» онлайновых графических форматов. Более подробная информация представлена в главах, посвященных каждому из форматов.
GIF. GIF — Grafic Interchange Format можно назвать традиционным форматом файлов Web. Он был первым форматом файлов, который поддерживался Web-браузерами, и по сей день продолжает оставаться основным графическим форматом Web.
Его свойства состоят в следующем:
— поддерживает не более 256 цветов (меньше можно и часто нужно);
— использует палитру цветов;
— использует сжатие без потери информации по методу LZW (который подобен применяемому в архиваторе PKZIP, и, следовательно, GIF-файлы в дальнейшем практически не сжимаются);
— поддерживает чересстрочную развертку;
— является поточным форматом, т. е. показ картинки начинается во время перекачки;
— позволяет назначить одному из цветов в палитре атрибут прозрачный, что применяется при создании так называемых прозрачных GIFов;
— имеет возможность сохранения в одном файле нескольких изображений, что находит свое применение при изготовлении анимированных GIFов;
— поддерживает возможность вставки в файл управляющих блоков, которые позволяют вставлять комментарии в файл (например, об авторских правах), осуществлять задержку между показами изображений и т. д.
А теперь немножко разъяснений — к чему эти свойства могут привести. Как мы написали, GIF поддерживает не больше 256 цветов, а это значит, что все изображения, которые мы сохраняем в GIF-формате, явно или неявно уменьшают количество цветов, чтобы уложиться в этот лимит (разные программы с разным успехом). А отсюда вывод — если у взять красивую фотографию с плавными переходами и едва уловимыми оттенками цвета, то после преобразования все будет гораздо хуже — оттенки перестанут быть неуловимыми, и вся фотография приобретет неестественный, нереалистичный вид. Поэтому, если надо все-таки сохранить фотографию в формате GIF и передать все оттенки, то приходится идти на хитрости. Например, к фотографии можно применить какой-нибудь художественный фильтр и превратить ее в рисунок или применить тонирование. Зато нет никаких проблем с сохранением рисунков и чертежей в этом формате, они, как правило, хорошо сжимаются и не содержат много цветов.
JPEG. Вторым наиболее популярным графическим форматом в Web является JPEG — Joint Photographic Experts Group. Он содержит 24-разрядную информацию о цвете. Это 16,77 млн. цветов в отличие от 256 цветов формата GIF. В JPEG используется так называемое сжатие с потерями. Это означает, что некоторая информация об изображениях в процессе сжатия отбрасывается, но в большинстве случаев ухудшение качества изображения не наносит вреда и часто даже не заметно.
Фотографии или любые изображения с плавными градациями цветов лучше всего сохранять в JPEG-формате, потому что он предлагает более высокое качество изображений, умещающихся в файл меньшего объема. Тем не менее, JPEG не является лучшим решением для графических изображений с одноцветными областями, поскольку этот формат имеет тенденцию испещрять цвета крапинками и конечный файл, как правило, будет несколько больше, чем GIF-файл для того же изображения.
PNG. Есть еще третий графический формат, конкурирующий за постоянное использование в Web. Это формат PNG — Portable Network Graphic, который, несмотря на некоторые достоинства, с 1994 г. находится более или менее в тени. Только недавно браузеры начали поддерживать PNG как встроенную графику, но PNG имеет все шансы стать очень популярным форматом в Web. Именно поэтому он включен здесь в «большую тройку». PNG может поддерживать 8-разрядные индексированные цвета, 16-разрядные полутона или 24-разрядные полноцветные изображения, используя схему сжатия без потерь. Это обеспечивает более высокое качество изображений, а иногда и меньший объем файлов по сравнению с форматом GIF. Кроме того, файлы PNG имеют некоторые замечательные функции, например, встроенное управление коэффициентом гамма, и изменяемые уровни прозрачности (это позволяет показывать рисунок фона сквозь отбрасываемые мягкие тени).
Разрешение и размер файла изображений. Поскольку изображения Web существуют только на экране дисплея, будет технически правильно измерять их разрешение в пикселах на дюйм (ppi — pixels per inch). Другая единица измерения разрешения — количество точек на дюйм (dpi — dots per inch) относится к разрешению печатных изображений и зависит от разрешения печатающего устройства.
Но, так как реальные размеры графики зависят от разрешения дисплея, измерение в дюймах становится для Web-окружения неприемлемым. Единственной значимой единицей измерения становится пиксел.
Практично создавать изображения с разрешением 72 ppi (это лучший вариант для представления на экране), обращая внимание только на общие размеры в пикселах. В процессе создания графики на Web можно вообще не использовать дюймы. Важен размер изображения по сравнению с другими изображениями на странице и общего размера окна браузера.
Чтобы гарантировать заполнение графической заставкой всего пространства экрана, лучше сделать его шириной не более 800 пикселов (учитывая, что часть пикселов справа и слева будет использована для окна и для полосы прокрутки). Размер остальных кнопок и изображений на странице следует измерять в пикселах относительно банеpa, имеющего ширину 800 пикселов.
Размер файла. Без сомнения, именно графика сделала Web таким, каким мы его видим сегодня, но как дизайнер вы должны знать, что многие пользователи испытывают к графике в Web чувство на грани любви и ненависти. Не стоит забывать, что графика увеличивает время, необходимое Web-странице для передачи по сети; большой объем графики означает существенное время загрузки, которое испытывает терпение читателя, особенно если он дозванивается с использованием стандартного модемного соединения.
В этом отношении для Web-дизайнера существует единственное наиболее важное правило: размер файла графического изображения должен быть минимально возможным! Создание изображений, предназначенных для передачи по сети, возлагает ответственность на разработчиков серьезно относиться к проблеме времени загрузки.
2.4 Основы программирования PHP
Программы PHP могут выполняться двумя способами: как сценарное приложение Web-сервером и как консольные программы. Поскольку, нашей задачей является программирование web-приложений, мы преимущественно будем рассматривать первый способ.
Дело в том, что на PHP, как правило, используется сугубо для программирования приложений, связанных с Интернетом. Однако, PHP можно еще использовать в качестве интерпретатора командной строки, в основном в *nix-системах. Последнее возможно при помощи CORBA и COM интерфейсов, а также при помощи расширения PHP-GTK. При таком использовании PHP возможно решение следующих задач:
· создание приложений интерактивной командной строки;
· создание кросс-платформенных GUI приложений при помощи библиотеки PHP-GTK;
· автоматизация некоторых задач под Windows и Linux
Рассмотрим процесс выполнения php-сценария при обращении броузера к серверу. Итак, вначале броузер запрашивает страницу с расширением .php, после чего web-сервер пропускает программу через машину PHP и выдаёт результат в виде html-кода. Причем, если взять стандартную страницу HTML, изменить расширение на .php и пропустить её через машину PHP, последняя просто перешлёт её пользователю без изменений. Чтобы включить в этот файл команды PHP, необходимо заключить команды PHP в специальные теги, которых различают 4 вида (они эквивалентны и можно использовать любые):
1. Инструкция обработки XML:
… ?>
2. Инструкция обработки SGML:
…
?>
3. Инструкция обработки сценариев HTML:
…
4. Инструкция в стиле ASP:
<%
…
%>
При разработке сайта мы будем использовать 1 вид тегов.
Команда echo в PHP применяется для вывода фактически всего, что встречается на web-страницах (текст, разметку HTML, числа).
В РНР переменные начинаются со знака доллара ($). За этим знаком может следовать любое количество буквенно-цифровых символов и символов подчеркивания, но первый символ не может быть цифрой или подчеркиванием. Следует также помнить, что имена переменных в РНР чувствительны к регистру, в отличие от ключевых слов.
При объявлении переменных в РНР не требуется явно указывать тип переменной, при этом одна и та же переменная может иметь на протяжении программы разные типы.
Переменная инициализируется в момент присваивания ей значения и существует до тех пор, пока выполняется программа. Т. е., в случае web-страницы это означает, что до тех пор, пока не завершен запрос.
Внешние переменные После того, как запрос клиента проанализирован веб-сервером и передан РНР машине, последняя устанавливает ряд переменных, которые содержат данные, относящиеся к запросу и доступны все время его выполнения. Сначала РНР берет переменные окружения Вашей системы и создает переменные с теми же именами и значениями в окружении сценария РНР для того чтобы сценариям, расположенным на сервере были доступны особенности системы клиента. Эти переменные помещаются в ассоциативный массив $HTTP_ENV_VARS.
Естественно, что переменные массива $HTTP_ENV_VARS являются системно зависимыми (поскольку это фактически переменные окружения).
Затем РНР создает группу GET-переменных, которые создаются при анализе строки запроса. Строка запроса хранится в переменной $QUERY_STRING и представляет собой информацию, следующую за символом «?» в запрошенном URL. РНР разбивает строку запроса по символам & на отдельные элементы, а затем ищет в каждом из этих элементов знак «=». Если знак «=» найден, то создается переменная с именем из символов, стоящих слева от знака равенства.
Константы объявляются в РНР при помощи функции define ():
define (CONSTANT, value)
Первый параметр этой функции — имя константы, второй — её значение. При использовании константы на неё ссылаются по имени.
PHP предоставляет определенную гибкость в отношении типов переменных, т. е. с одной и той же переменной на протяжении программы можно работать и как со строкой, и как с числом. Однако, несмотря на это в РНР существуют набор основных типов данных, которые могут явно указываться при работе с переменными:
· integer;
· string;
· boolean;
· double;
· array;
· object;
2.5 Совместная работа PHP и MySQL
MySQL — это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для интернет сайтов, как небольших, так и достаточно крупных.
MySQL отличатся хорошей скоростью работы, надежностью, гибкостью. Работа с ней, как правило, не вызывает больших трудностей. Поддержка сервера MySQL автоматически включается в поставку PHP.
Немаловажным фактором является ее бесплатность. MySQL распространяется на условиях общей лицензии GNU (GPL, GNU Public License).
Ранее для долговременного хранения информации мы работали с файлами: помещали в них некоторое количество строчек, а затем извлекали их для последующей работы. Задача длительного хранения информации очень часто встречается в программировании Web-приложений: подсчёт посетителей в счётчике, хранение сообщений в форуме, удалённое управление содержанием информации на сайте и т. д.
Между тем, профессиональные приёмы работы с файлами очень трудоёмки: необходимо заботится о помещении в них информации, о её сортировке, извлечении, при этом не нужно забывать, что все эти действия будут происходить на сервере хост-провайдера, где с очень большой вероятностью стоит один из вариантов Unix — следовательно, нужно так же заботится о правах доступа к файлам и их размещении. При этом объём кода значительно возрастает, и совершить ошибку в программе очень просто.
Все эти проблемы решает использование базы данных. Базы данных сами заботятся о безопасности информации и её сортировке и позволяют извлекать и размещать информацию при помощи одной строчки. Код с использованием базы данных получается более компактным, и отлаживать его гораздо легче. Кроме того, не нужно забывать и о скорости — выборка информации из базы данных происходит значительно быстрее, чем из файлов.
Приложение на РНР, использующее для хранения информации базу данных (в частности MySql) всегда работает быстрее приложения, построенного на файлах. Дело в том, что базы данных написаны на языке C++, и написать на PHP программу, которая работала бы с жёстким диском эффективнее базы данных — задача неразрешимая по определению, поскольку программы на PHP в принципе работают медленнее, чем программы на C++, так как РНР — интерпретатор, а С++ - компилятор.