Разработка Web-приложений

Развитие цифровых и компьютерных технологий, перенос бизнес-инструментов в сеть. Создание и тестирование Web-приложений. Задачи специалистов по клинингу. Основы технологии html, работа с тегами. Структура гипертекстовой страницы в различных браузерах.

Рубрика Программирование, компьютеры и кибернетика
Вид методичка
Язык русский
Дата добавления 02.04.2019
Размер файла 2,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*

Accept-Language: ru

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)

Host: localhost

Proxy-Connection: Keep-Alive

param1=1&param2=2

Взглянув на пример, можно заметить, что запрос начинается со слова "POST". Это слово означает метод передачи данных на сервер, в котором дополнительные данные запроса (строка "param1=1&param2=2") передаются после заголовка.

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

<form action="http://localhost/" method="post">

<input type=hidden name="param1" value="1">

<input type=hidden name="param2" value="2">

<input type=submit></form>

Как видно из примера, параметры записываются в виде

[имя параметра 1]=[значения параметра 1]&[имя параметра 2]=[значения параметра 2]&...

Такой вид записи является стандартным и носит название CGI интерфейса (Common Gateway Interface - базовый интерфейс гейтов (gate - врата, ещё одно название серверов)). Все данные, отсылаемые браузером, обработавшим HTML к серверу записываются именно в таком формате. При этом символы, отличные от печатных ANSI, записываются в формате %NN, где NN - это шестнадцатиричный код символа. К примеру, пробел будет записан как %20, а символ % - как %25 (см.ASCII & ANSI Character Codes).

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

Наиболее часто употребим ещё один метод запроса - "GET". Фактически все запросы, не требующие отправки данных - например запрос страницы, производятся этим способом. Впрочем, данные можно отправлять и GET методом - изменим форму запроса:

<form action="http://localhost/" method="get">

<input type=hidden name="param1" value="1">

<input type=hidden name="param2" value="2">

<input type=submit></form>

и получим следующий HTTP запрос:

GET http://localhost/?param1=1&param2=2 HTTP/1.1

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*

Accept-Language: ru

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)

Host: localhost

Proxy-Connection: Keep-Alive

Как видно, строка "param1=1&param2=2" переместилась выше и добавилась к строке "http://localhost/" после знака "?". Так же изменилось первое слово в HTTP заголовке, остальное осталось без изменения.

Достоинством метода GET является то, что в строке браузера видно, какие данные были отправлены. К недостаткам же относится то, что длина отправляемых данных таким способом (в отличие от метода POST) ограничена - некоторые серверы, как и некоторые браузеры, имеют лимит на длину адреса запрашиваемого документа. Соответственно адрес с длинной строкой запроса может быть либо обрезан, либо сервер возвратит ошибку "414 Request-URI Too Long".

HTTP запрос

Разберём по строкам HTTP заголовок запроса:

Первая строка, первое слово - имя метода запроса. Это слово может быть одно из следующих:

OPTIONS

GET

HEAD

POST

PUT

DELETE

TRACE

CONNECT

В данной статье я буду касаться прежде всего двух методов - GET и POST, подробнее об остальных читайте тут - RFC 2616, Section 5. Вкратце лишь опишу действия остальных:

Метод HEAD по действию практически идентичен методу GET с одним отличием - в ответе на метод HEAD сервер выдаёт только HTTP заголовок, не выдавая содержимого документа.

Метод PUT по действию идентичен методу POST, но как и HEAD выдаёт только заголовок HTTP.

Метод OPTIONS выдаёт все действия, которые можно совершить с документом.

Метод DELETE указывает серверу, чтобы он предпринял попытку к удалению документа. Возможным ответом является ошибка политики безопасности ("403 Forbidden").

Методом TRACE можно получить путь запроса до сервера, список узловых точек, гейтов (Gate), путь через прокси-сервера.

Метод CONNECT возвращает есть ли связь с сервером и поддерживает ли сервер HTTP протокол.

Сразу после ключегого слова, определяющего метод, идёт символ пробела и указан URI документа запрашиваемого с сервера. После URI документа идёт ещё один символ пробела и название протокола (строка "HTTP/1.1").

Что такое URI? URI расшифровывается как Uniform Resource Identifier (формат записи индитефикатора ресурса), полностью он описан тут - RFC 2396, а нас интересует лишь то, как с помощью его записывается адрес документа. Для HTTP существует разновидность стандарта URI, называемая URL (Uniform Resource Location - формат записи нахождения ресурса), к примеру

http://devresource.org:80/javalinks/catalog.php3?name=java&cat=2#section1

Из приведённого примера URL можно выделить логические части:

1) [http://]

2) [devresource.org:80/javalinks/catalog.php3]

3) [?name=java&cat=2]

4) [#section1]

часть (1) указывает на протокол доступа к документу, часть (2) - можно разбить на две части -

[devresource.org]

[:80]

[/javalinks/catalog.php3]

это имя хоста (вместо имени devresource.org может стоять и IP адрес), порт сервера через символ ":" и путь (path) до документа от корня (root) сервера.

Стандартным портом для HTTP сервера является порт 80 и, поэтому, его можно не указывать. Внимание! Если порт сервера отличается от 80, то в URL его нужно обязательно указать.

Третья часть URL - это GET часть запроса, отделена от документа символом "?".

И, наконец, последняя часть URI - "секция", отделённая символом "#". При HTML форматировании в документа можно положить закладку (по другому - установить якорь, он же anchor, отсюда и название HTML тега <A>). Если в URI ресурса указана секция, то в HTML ищется одноимённая закладка, а браузер при отображении документа показывает текст, отмеченный якорем.

К примеру, для HTML документа sample.html

...

test 24

<a name="section1">test 25</a>

test 26

<a name="section2">test 27</a>

test 28

...

при вызове sample.html#section1 документ будет проскролирован до закладки "section1", а при указании sample.html#section2 - будет показано место, помеченное в документе, как "section2".

Части URL с номерами (3) и (4) являются необязательными. Если нет необходимости, их можно не указывать. В первой строке HTTP запроса так же можно указать не полный URL, а лишь путь до документа - к примеру так:

GET /#section1 HTTP/1.1

или так:

GET /javalinks/catalog.php3?name=java&cat=2#section1 HTTP/1.1

В таких случаях имя хоста берётся из параметра HTTP запроса "Host".

Внимание! Имя протокола в URI в первой строке заголовка сигнализирует серверу о том, что путь до документа указан вместе с именем хоста. То есть, если послать серверу заголовок, начинающийся со строки

GET localhost/?param1=1&param2=2 HTTP/1.1

то сервер будет искать документ

http://localhost/localhost/?param1=1&param2=2

а не

http://localhost/?param1=1&param2=2

Как и каждая строка HTTP заголовка, первая строка запроса заканчивается символом переноса строки ("\n").

Параметры HTTP запроса

Далее приведены основные параметры для HTTP заголовка. Каждая строка, содержащая параметр начинается с ключевого слова (например "Host"), потом идёт символ двоеточие, пробел, значение параметра и символ переноса строки. Приведённые параметры соответствуют стандарту RFC 2616 (HTTP/1.1). Здесь приводится не весь список возможных полей запроса и их значений.

Host: localhost

Этот параметр содержит имя хоста, например "localhost" или "localhost:80" (если порт 80, то его можно не указывать, если порт отличается от 80, то его нужно обязательно указать). Это второй обязательный параметр HTTP заголовка (первый - HTTP метод и имя протокола).

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*

В этом параметре через запятую указаны MIME типы документов, которые способен обработать браузер. Так же в MIME типе указываются доступные к обработке кодировки документов. Подробнее о стандарте MIME смотрите тут - RFC 2045. Символ "*" в указании типа означает, что браузер может обработать весь класс документов. К примеру, image/* означает, что браузер может обработать и image/gif, и image/x-xbitmap, и image/jpeg, и image/pjpeg и вообще любые документы изображений, а заключительный тип - */* указывает, что браузер обработает любые документы, присланные сервером. На деле это обычно означает, что если MIME тип присланного сервером документа браузеру неизвестен, то он предложит сохранить его на диск.

Accept-Language: ru, en

Accept-Charset: windows-1251, KOI8-R

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

Accept-Encoding: compressed, gzip

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

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2; .NET CLR 1.0.3705)

Имя HTTP клиента. Многие браузеры тут же указывают операционную систему, плагины и прочие нашлёпки.

Referer: http://localhost/?test=test

Очень полезный параметр. Значением этого поля является URL ресурса, с которой был осуществлён переход. Фактически, когда вы нажимаете на ссылку в HTML документе, скорее всего адрес этого документа будет записан в этот параметр.

Cookie: param1=value1; param2=value2

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

[имя параметра1]=[значение параметра1]; [имя параметра2]=[значение параметра2]; ...

Впрочем, значения параметров кодируются точно так же, как и в CGI - "неправильные" символы заменяются с помощью %NN. Подробнее о куках читайте тут - Cookie Specification.

Range-Unit: 2015 | 1024

Очень полезный параметр, позволяющий получить с сервера не весь документ, а только его часть. Именно этот параметр используют менеджеры докачек типа flashget. В данном примере указано, что клиент хочет получить кусок документа, начиная с 2015 байта и длиной в 1 килобайт. Если сервер поддерживает докачку и документ не является динамическим, то будет выдана запрашиваемая часть. В противном случае сервер вернёт ошибку о том, что действие не поддерживается или начнёт выдавать документ полностью.

Pragma: no-cache

Cache-Control: no-cache, must-revalidate

Параметры, указывающие серверу, что этот документ не надо брать из кэша. Другие варианты значений могут быть: "public" - документ является публичным, его может брать любой клиент из кэша "private" - документ является приватным, только для данного клиента "no-store" - не сохранять в кэш "no-transform" - не модифицировать документ, уже содержащийся в кэше "must-revalidate" - обязан обновить документ, лежащий в кэше (и браузер и прокси) "proxy-revalidate" - в кэше должен обновить только прокси сервер "max-age=[seconds]" - сохраняет в кэш на количество секунд, указанных в параметре, начиная со времени сохранения; по истечению этого времени, документ удаляется Допустимо указание параметра в следующем виде:

Pragma: must-revalidate, max-age=1000

но некоторые комбинации значений могут вызвать ошибку "400 Bad request"

Proxy-Connection: Keep-Alive

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

Proxy-Connection: close

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

Для запроса к серверу, обязательными являются лишь два параметра: первая строка, уточняющая метод запроса и несущая адрес ресурса и параметр "Host", содержащий имя хоста и порт сервера.

Отправка файла методом POST

Отдельно стоит рассказать об отправке файлов с помощью метода POST. Для того, чтобы отправить файл этим методом, нужно в форме отправки сообщений указать специальный параметр "enctype='multipart/form-data'":

<form action='http://localhost' method=post enctype='multipart/form-data'>

<input type='hidden' name='test' value='test'>

<input type='file' name='testfile'>

<input type='submit' value='send'></form>

Допустим, мы отправляем файл "c:\test.txt" размера 14 байт, содержащий текст "This a test!!!". В этом случае данные будут отправлены следующим образом:

POST http://localhost/ HTTP/1.1

Content-Type: multipart/form-data;

boundary=---------------------------7d33188e01e4

Host: localhost

Content-Length: 254

-----------------------------7d33188e01e4

Content-Disposition: form-data; name="test"

test -----------------------------7d33188e01e4

Content-Disposition: form-data; name="testfile"; filename="c:\test.txt"

Content-Type: text/plain

This a test!!!

Как видно из примера, добавляется ещё два HTTP параметра -

Content-Type: multipart/form-data; boundary=

---------------------------7d33188e01e4

Эта строка говорит, что все отсылаемые данные будут передаваться по частям, а делителем этих частей будет выступать строка "-----------------------------7d33188e01e4" и перенос строки после неё. Вообще-то, делителем может выступать совершенно любой набор символов, лишь бы подобного не было в передаваемых данных.

Content-Length: 342

Этот параметр сообщает серверу количество данных, содержащихся после HTTP заголовка.

Ну и сами данные передаются с помощью HTTP-subheader (субзаголовок HTTP)

Content-Disposition: form-data; name="test"

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

Другой субзаголовок -

Content-Type: text/plain

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

HTTP ответ

Перейдём к ответу сервера. Вот пример ответа сервера клиенту (сервер выдаёт текстовый файл, содержащий строку "This a test!!!"):

HTTP/1.1 200 OK

Date: Mon, 07 Apr 2003 14:40:25 GMT

Server: Apache/1.3.20 (Win32) PHP/4.3.0

Keep-Alive: timeout=15, max=100

Connection: Keep-Alive

Transfer-Encoding: chunked

Content-Type: text/plane

This a test!!!

Ещё один пример, сервер выдаёт файл test.zip:

HTTP/1.1 200 OK

Date: Mon, 07 Apr 2003 14:51:19 GMT

Server: Apache/1.3.20 (Win32) PHP/4.3.0

Last-Modified: Mon, 07 Apr 2003 14:51:00 GMT

Accept-Ranges: bytes

Content-Length: 673

Keep-Alive: timeout=15, max=100

Connection: Keep-Alive

Content-Type: application/zip

Content-Disposition: attachment; filename=test.zip

Pragma: no-cache

....(содержимое zip файла)

Тут мы тоже видим HTTP заголовок, отделённый от тела документа двумя символами переноса строки.

Разберём заголовок. Он начинается с названия протокола "HTTP/1.1", после чего идёт пробел, затем - код возврата "200 OK". После кода возврата идёт символ переноса строки.

Коды ответов сервера

Вот основные коды возврата, определённые для серверов:

Коды с номером типа 1xx: информационный - запрос послан, идёт процесс:

· "101 Switching Protocols" - переключение протокола

Коды с номером типа 2xx: удачное завершение - запрос полностью послан, прочитан/понят сервером и принят им:

· "200 OK" - запрос успешно получен, понят, принят и выполнен

· "201 Created" - создано

· "202 Accepted" - принято

· "203 Non-Authoritative Information" - нерабочая информация

· "204 No Content" - нет информации к ответу

· "205 Reset Content" - очистка ответа

· "206 Partial Content" - выдаётся запрошенная часть документа (см. "Range-Unit" в запросе клиента)

Коды с номером типа 3xx: перенаправление - действие нуждается в уточнении либо просто информационный ответ:

· "300 Multiple Choices" - множественный выбор - по данному запросу обнаружено несколько вариантов документов

· "301 Moved Permanently" - документ переехал

· "302 Found" - найдено

· "303 See Other" - смотри остальные

· "304 Not Modified" - не изменён

· "305 Use Proxy" - используй прокси

· "307 Section" - временное перемещение запроса

Коды с номером типа 4xx: ошибка клиента - запрос клиента имеет либо неправильный синтаксис, либо не понят:

· "400 Bad Request" - плохой запрос

· "401 Unauthorized" - нет авторизации

· "402 Payment Required" - коммерческий ресурс, у вас нет денег на счету

· "403 Forbidden" - запрещение доступа к ресурсу (политика безопасности)

· "404 Not Found" - ресурс не найден

· "405 Method Not Allowed" - метод не поддерживается

· "406 Not Acceptable" - нет доступа к хосту

· "407 Proxy Authentication Required" - для работы с прокси вы должны авторизоваться

· "408 Request Time-out" - слишком долго не было данных с сервера (связь плохая или сервер упал)

· "409 Conflict" - конфликт

· "410 Gone" - процесс идёт (не мешайте)

· "411 Length Required" - требуется длина посылаемых данных

· "412 Precondition Failed" - неправильные умолчания

· "413 Request Entity Too Large" - содержимое запроса слишком велико для этого сервера

· "414 Request-URI Too Large" - слишком длинный адрес запрашиваемого ресурса

· "415 Unsupported Media Type" - в "Accept" не указан поддерживаемый сервером формат данных

· "416 Requested range not satisfiable" - требуемый кусок (с помощью "Range-Unit") имеет неверные размеры

· "417 Expectation Failed" - неожиданная ошибка при разборе запроса (может возникнуть при пересылке типа "multipart/form-data" при неправильном делителе)

Коды с номером типа 5xx: ошибка сервера - сервер не может обработать запрос клиента

· "500 Internal Server Error" - внутренняя ошибка сервера

· "501 Not Implemented" - не применяется (этот запрос не применим)

· "502 Bad Gateway" - "плохие врата" - сервер не обрабатывает запросы с этого сегмента IP

· "503 Service Unavailable" - такой сервис недоступен (к примеру TRACE запрос)

· "504 Gateway Time-out" - слишком долго сервер пытался получить данные, связь плохая

· "505 HTTP Version not supported" - версия HTTP, указанная в запросе, не поддерживается данным сервером

Параметры HTTP ответа

Продолжим разбор параметров заголовка в ответе сервера. Прежде всего упомяну, что параметры "Cache-Control", "Pragma" и "Proxy-Connection" идентичны как для запроса, так и для ответа, по этому всё сказанное про них выше, применимо и тут.

Set-Cookie: name=value; expires=date; path=PATH; domain=HOSTNAME; secure

Не буду подробно останавливаться на этом параметре. Он устанавливает или удаляет cookie и подробно о нём написано вCookie Specification.

Location: http://www.devresource.org

Данный параметр указывает браузеру, что нужно открыть ресурс http://www.devresource.org вместо текущего. В значении этого параметра указывается URI ресурса для перехода.

Date: Mon, 07 Apr 2003 14:51:19 GMT

Параметр показывает дату документа. Это либо текущая дата (если документ динамический), либо дата создания отправляемого файла. Дата представлена в формате GMT.

Last-Modified: Mon, 07 Apr 2003 14:51:00 GMT

Параметр показывает дату последнего изменения документа.

Server: Apache/1.3.20 (Win32) PHP/4.3.0

Параметр содержит имя сервера.

Keep-Alive: timeout=15, max=100

Connection: Keep-Alive

Эти два параметра сообщают, что поддерживается постоянное соединение с сервером (вы противном случае было бы "Connection: close"), что текущее время timeout для сокета сервера составляет 15 секунд и что клиент может изменить это время максимум до 100 секунд.

Accept-Ranges: bytes

Этот параметр существует, чтобы указать клиенту, какая часть документа ему пересылается (в случае присутствия "Range-Unit" в запросе) Параметр этот может содержать значение "bytes", означающее, что пересылается файл целиком.

Так же "none" (или этот параметр может быть просто опущен), означающее, что докачка не используется или не поддерживается, а строка "Accept-Ranges: 1:637" будет означать, что пересылается кусок документа с байта под номером 1 и длиной в 637 байт.

Content-Length: 673

Длина пересылаемого документа.

Content-Type: application/zip

MIME тип пересылаемого документа

Content-Disposition: attachment; filename=test.zip

указывает, что пересылаемый файл имеет название "test.zip"

Accept-Charset: windows-1251

указывает кодировку текста документа (в данном случае - русскую кодировку windows)

Accept-Encoding: compress, gzip

этот параметр используется сервером, чтобы указать клиенту, что документ ему передаётся в сжатом виде (и для сжатия используется стандарт gzip)

Accept-Language: ru

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

Transfer-Encoding: chunked

Данный параметр показывает метод выдачи данных сервером. В данном случае сервер будет выдавать данные по кусочкам, а не всё сразу.

На этом краткое описание HTTP протокола можно считать завершённым.

Задания к работе

1. Чем отличаются методы GET и POST?

2. Создание тестовой системы и счетчика посещений страницы средствами CGI, PHP и СУБД MySQL

3. CGI. Проверка знания таблицы умножения и текстовый счетчик посещения страницы.

4. PHP. Проверка знания таблицы умножения с записью результатов прохождения теста разными пользователями в базу данных.

5. CGI. Любой психологический тест и текстовый счетчик посещения страницы.

6. PHP. Любой психологический тест и вывод результатов в базу данных.

7. CGI. Проверка знания языка HTML и текстовый счетчик посещения страницы.

8. PHP. Проверка знания языка HTML с тематическими вопросами и вывод результатов с процентами успешных ответов по каждой теме в базу данных.

9. CGI. Экзамен по дисциплине и текстовый счетчик посещения страницы.

10. PHP. Экзамен по дисциплине и в результате вывод не только оценки, но и перечня тем с большинством неправильных ответов. Вывод результата по темам в базу данных.

11. CGI. Проверка знания словарного запаса (англ. или нем. или франц.) и текстовый счетчик посещения страницы

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

Практическое занятие №12

Тема: Суперглобальные массивы

Цель работы: освоение методов работы с ассоциативными массивами средствами языка PHP.

Указание к работе: понять где и когда применяются суперглобальные массивы и понять смысл их применения.

Суперглобальные переменные PHP будут описаны в дальнейшем. Массивы имеют много применений в PHP и программировании в целом.

Этот раздел представил некоторые базовые вопросы массивов PHP и описал некоторые базовые функции: это понадобится при рассмотрении более развитых свойств массивов в следующих разделах.

Константы, как и переменные, являются временным хранилищем значений в памяти.

В отличие от переменных значение константыникогда не изменяется. При объявлении константы используется функция define(), которая требует задать имя константы и значениеэтой константы.

Константам можно присваивать следующие типы данных.

Целые - целые числа или числа без десятичной точки (1, 999, 325812841).

Числа с плавающей точкой -- числа, содержащие десятичную точку (1.11, 2.5, .44).

Строки - текстовая или числовая информация.

Строковые данные всегда заключаются в кавычки ("Hello World", "478-477-5555").

Имена констант PHP в отличие от переменных не начинаются со знака "$". Имена констант обычно записывают в верхнем регистре.

Имена констант могут содержать буквы, цифры и символ подчеркивания ( _ ); они не могут, однако, начинаться с цифры.

Объявление констант показано ниже.

define("STRING_CONSTANT", "This is my string.");

define("NUMERIC_CONSTANT", 5);

В PHP версии 4 и выше введено понятие "суперглобальных" массивов. Эти массивы содержат всю информацию о состоянии сервера и среды выполнения скрипта.

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

Виды суперглобальных массивов

Всего массивов девять. Имена всех массивов записываются заглавными буквами, а начинается имя всегда с "$_" (кроме массива $GLOBALS).

$GLOBALS

Массив содержит ссылки на все переменные, объявленные в данном скрипте. Это ассоциативный массив, в котором имена переменных являются ключами.

$_SERVER

Массив содержит все данные о настройках среды выполнения скрипта и параметры сервера.

$_GET

Список переменных, переданных скрипту методом GET, т.е. через параметры URL-запроса.

$_POST

Список переменных, переданных скрипту методом POST.

$_COOKIE

Массив содержит все cookies, которые сервер установил на стороне пользователя.

$_FILES

Содержит список файлов, загруженных на сервер из формы. Более детально мы рассмотрим этот массив в уроке, посвящённом загрузке файлов на сервер.

$_ENV

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

$_REQUEST

Этот массив объединяет массивы $GET, $POST и $COOKIE. очень часто бывает удобен при обработке пользовательских запросов, но применять его для защищённой обработки данных не стоит.

$_SESSION

Массив содержит все переменные сессии текущего пользователя.

Просмотреть содержимое всех масивов можно в результате вызова функции phpinfo().

Рассмотрим примеры использования глобальных массивов.

$_SERVER

С помощью этого массива можно узнать практически всё о сервере, на котором исполняется скрипт.

Например:

<?php

echo 'параметры сервера:' . "<br />\n";

echo "Операционная система: " .

$_SERVER["OS"] . "<br />\n";

echo "Web-сервер: " .

$_SERVER["SERVER_SOFTWARE"] . "<br />\n";

echo "Имя сервера: " .

$_SERVER["SERVER_NAME"] . "<br />\n";

echo "Адрес сервера: " .

$_SERVER["SERVER_ADDR"] . "<br />\n";

echo "Порт сервера: " .

$_SERVER["SERVER_PORT"] . "<br />\n";

echo "Адрес клиента: " .

$_SERVER["REMOTE_ADDR"] . "<br />\n";

echo "Путь к документам на сервере: " .

$_SERVER["DOCUMENT_ROOT"] . "<br />\n";

echo "Полный путь к текущему скрипту: " .

$_SERVER["SCRIPT_FILENAME"] . "<br />\n";

echo "Имя текущего скрипта: " .

$_SERVER["PHP_SELF"] . "<br />\n";?>

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

Например, параметры $_SERVER["REQUEST_URI"] и $_SERVER["SCRIPT_NAME"] могут быть не установлены (хотя один из них как правило присутствует).

$_GET и $_POST

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

Например, если пользователь ввёл в строку адреса браузера адрес "http://localhost/index.php?name=Dmitry&fam=Medvedev&jt=president&country=Russia", то массив $_GET надо будет обрабатывать так:

<?php

/*

Предполагаем, что массив $_GET должен

содержать следующие элемены

$_GET['name'] = "Dmitry";

$_GET['fam'] = "Medvedev";

$_GET['jt'] = "president";

$_GET['country'] = "Russia";

*/

// Теперь проверим наличие данных,

// а для недостающих - возьмём пустую строку

$name = (isset($_GET['name']))?

$_GET['name']:' не указано ';

$fam = (isset($_GET['fam']))?

$_GET['fam']:' не указано ';

$jt = (isset($_GET['jt']))?

$_GET['jt']:' не указано ';

$country = (isset($_GET['country']))?

$_GET['country']:' не указано ';

echo "Страна: $country <br />\n";

echo "Фамилия: $fam <br />\n";

echo "Имя: $name <br />\n";

echo "Должность: $jt <br />\n";

?>

Этот скрипт будет устойчиво работать при любом GET-запросе, даже если не будет указан ни один параметр. Если используется метод POST, то достаточно заменить $_GET на $_POST.

А если вам совершенно не важно, откуда получены данные - воспользуйтесь массивом $_REQUEST (см. ниже).

При работе с пользовательским вводом есть одно правило:

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

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

$_COOKIES

В массив $_COOKIES автоматически помещаются все cookies, которые получены от браузера. Механизм cookies мы подробно рассмотрим в соответствующем уроке. А пока вам достаточно запомнить, что есть глобальный массив, из которого в любое время можно узнать какие cookies установлены на стороне клиента.

$_REQUEST

Массив $_REQUEST объединяет три массива: $_POST, $_GET, $_COOKIES. В ранних версиях PHP сюда же входил массив $_FILES, но из соображений безопасности и производительности его исключили.

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

Например, при постраничном выводе данных номер страницы можно передавать через URL ("index.php?page=3") методом GET, а можно через элемент формы методом POST. И в том и в другом случае переменная page попадёт в массив $_REQUEST.

$_SESSION

Предназначение массива $_SESSION - хранение всех переменных сессии текущего пользователя. Мы подробно рассмотрим механизм сессий в соответствующем уроке.

Глобальные массивы очень удобны в работе, но злоупортеблять ими не стоит, особенно массивом $_SESSION. Если переменной нужна только в локальной области видимости - не надо её делать глобальной. Слишком большое количество "лишних" переменных сильно снижает быстродействие и эффективность скрипта.

Задания к работе

1. Создать линейный массив из 20 целых чисел, значения которых вычисляются по формуле $ a []=$ i *3+ N, здесь N -- это номер студента по журналу; $ i -- индекс элемента массива. Вывести полученный массив на печать с использованием функции print _ r;

2. Создать линейный массив из 30 целых чисел с индексами, соответствующими четным числам, начиная с 2. Значения элементов массива вычисляются по формуле $ a [$ i ]=$ i /2 + N; здесь N -- это номер студента по журналу; $ i -- индекс элемента массива. Вывести массив в виде таблицы. При выводе в ячейки таблицы используйте выравнивание содержимого по центру ячейки. Таблицу сделать с границей.

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

4. Напишите PHP-скрипт, в котором создается одномерный массив, содержащий 6 элементов со следующими ключами

5. Создайте ассоциативный массив из 5 элементов, ключами в массиве являются фамилии людей, значениями -- номера их телефонов. Напишите скрипт, который по фамилии, переданной в качестве параметра, выводит на экран номер телефона данного человека.

6. Создать массив $ sessia, заполнив его данными для 5 студентов. Количество сданных экзаменов должно колебаться от 1 до 5. Напишите скрипт, который позволяет получить по фамилии студента количество сданных им экзаменов и их список с оценками. Фамилию студента передавать в скрипт как параметр через протокол GET.

7. Расширить обработку в задании 6. В качестве параметров у вас могут передаваться либо фамилия студента, либо название дисциплины. Для первого случая обработка остается такая же, как в задании 6. При передаче в качестве параметра названия дисциплины требуется вывести список всех студентов, которые сдали данную дисциплину с указанием оценки, которую студент получил на экзамене.

8. Для каждой группы задан перечень экзаменов, вынесенных на сессию. Список задан в виде массива, ключом которого является номер группы, а значением -- массив предметов, вынесенных для данной группы на сессию.

9. Задан массив «Сессия» для 4 студентов, каждый из которых сдавал не менее 3 экзаменов.

10. Задано расписание занятий на текущую неделю для конкретной аудитории. Считаем, что в качестве аудитории выбрана аудитория на одну группу, поэтому на каждой паре в ней могут проходить занятия только для конкретной группы. Допустим, это расписание может быть представлено в виде сложного массива.

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

12. Напишите PHP-скрипт, в котором создается одномерный массив, содержащий 6 элементов со следующими ключами

Практическое занятие №13

Тема: Правила работы с базой данных Мysql

Цель работы: создать базу данных и применять во всех областях трудовой деятельности.

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

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

MySQL - свободно распространяемая система, т.е. платить за ее применение не нужно.

Кроме того, это достаточно быстрая, надежная и, главное, простая в использовании СУБД, вполне подходящая для не слишком глобальных проектов.

Работать с MySQL можно не только в текстовом режиме, но и в графическом. Существует очень популярный визуальный интерфейс (кстати, написанный на PHP) для работы с этой СУБД. Называется он PhpMyAdmin.

Этот интерфейс позволяет значительно упростить работу с базами данных в MySQL .

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

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

Рис. 10.3. Работа с MySQL в командной строке. Результат обработки команды show databases

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

После этого вы можете зайти в директорию, где лежат файлы типа mysql.exe, mysqld.exe и т.п. (у нас под Windows XP это c:\mysql\bin ) Последний файл запускает Mysql-сервер.

В некоторых системах сервер запускается в виде сервиса. После запуска сервера следует запустить mysql-клиент, запустив программуmysql.exe. Здесь даже пароля не спросят. Более того, если вы наберете

shell> mysql.exe -u root

или

shell>mysql -u root mysql

то получите все права администратора mysql сервера. Кстати, выполнять эти команды надо, находясь в той директории, где лежат файлыmysql.exe.

Для начала, не вдаваясь в подробности команд, исправим эти два недочета (отсутствие пароля у администратора и возможность входа анонимным пользователям):

shell> mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD('new_password')

WHERE user='root';

mysql> DELETE FROM user WHERE user='';

mysql> FLUSH PRIVILEGES;

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

Пароль задается с помощью функцииPASSWORD, которая кодирует введенные данные.

Кроме изменения пароля администратора, нужно еще удалить всех пользователей, не имеющих логина (команда DELETE ). Команда Flush Privileges заставляет вступить в действие изменения, произошедшие в системной базе данных (mysql).

Теперь создадим базу данных, с которой будем работать (мы все еще работаем как администратор сервера):

mysql>create database book;

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

mysql> show tables

->

->

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

mysql> GRANT ALL PRIVILEGES ON book.* TO nina@localhost

IDENTIFIED BY '123';

Команда GRANT наделяет пользователя nina, зашедшего на сервер с этой же машины (c localhost) и идентифицируемого паролем "123", определенными правами (в данном случае всеми) на все таблицы базы данных book.

Теперь мы можем выйти и зайти как пользователь nina с соответствующим паролем:

shell>mysql -u nina -p

Enter password: ***

Welcome to the MySQL monitor!...

mysql>

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

В следующей главе описаны команды языка SQL, которые пригодятся для работы с данными, хранящимися в СУБД MySQL.

1. Язык SQL

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

Для этого нам понадобится SQL - структурированный языкзапросов. Этот язык дает возможность создавать, редактировать и удалять информацию, хранящуюся в базах данных, создавать новые базы данных и многое другое. SQL является стандартом ANSI (Американский национальный институт стандартов) и ISO (Международная организация по стандартизации).

Немного истории

Первый международный стандарт языка SQL был принят в 1989 г., его часто называют SQL/89. Среди недостатков этого стандарта выделяют в первую очередь то, что многие важные свойства он устанавливал как определяемые в реализации.

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

Следующий международный стандарт языка SQL был принят в конце 1992 г. И стал называться SQL/92. Он получился гораздо более точным и полным, чем SQL/89, хотя и не был лишен недостатков.

В настоящее время большинство систем почти полностью реализуют этот стандарт. Однако, как известно, прогресс не остановишь, и в 1999 году появился новый стандарт SQL:1999, также известный какSQL3. SQL3 характеризуется как "объектно-ориентированный SQL " и является основой нескольких объектно-реляционных систем управления базами данных (например, ORACLE8 компании Oracle, Universal Server компании Informix и DB2 Universal Database компании IBM).

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

Если говорить о MySQL, то она соответствует начальному уровню SQL92, содержит несколько расширений этого стандарта и стремится к полной поддержке стандарта ANSI SQL99, но без ущерба для скорости и качества кода.

Далее, говоря об основах языка SQL, будем придерживаться его реализации в СУБД MySQL.

Задания к работе

1. Создать базу данных ателье мод

2. Создать базу данных медицинского центра.

3. Создать базу данных пресслужбы.

4. Создать базу данных факультета.

5. Создать базу данных «Фотостудии».

6. Создать базу данных отделения социальной защиты.

7. Создать базу данных компании «1000» дверей.

8. Создать базу данных фирмы «Лукойл».

9. Создать базу данных фирмы «Связной».

10. Создать базу данных библиотеки.

11. Создать базу данных рекламного агентства.

12. Создать базу данных оптового склада.

Практическое задание №14

Тема: Использование операций select, insert, update, delete

Цель работы: изучить структуру операций select, insert, update, delete, научиться работать и сортировать элементы.

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

Оператор SELECT

Оператор SELECT применяется для извлечения строк, выбранных из одной или нескольких таблиц. То есть с его помощью мы задаем столбцы или выражения, которые надо извлечь ( select_выражения ), таблицы ( table_references ), из которых должна производиться выборка, и, возможно, условие ( where_definition ), которому должны соответствовать данные в этих столбцах, и порядок, в котором эти данные нужно выдать.

Кроме того, оператор SELECT можно использовать для извлечения строк, вычисленных без ссылки на какую-либо таблицу. Например, чтобы вычислить, чему равно 2*2, нужно просто написать

mysql> SELECT 2*2;

Упрощенно структуру оператора SELECT можно представить следующим образом:

SELECT select_выражение1, select_выражение2,

...

[FROM table_references

[WHERE where_definition]

[ORDER BY {число | имя_столбца |

формула}

[ASC | DESC], ...]]

Квадратные скобки [ ] означают, что использование находящегося в них оператора необязательно, вертикальная черта | означает перечисление возможных вариантов.

После ключевого слова ORDER BY указывают имя столбца, число (целое беззнаковое) или формулу и способ упорядочения (по возрастанию - ASC, или по убыванию - DESC ). По умолчанию используется упорядочение по возрастанию.

Когда в select_выражении мы пишем " * ", это значит выбрать все столбцы. Кроме " * " в select_выражения могут использоваться функции типа max, min и avg.

Оператор INSERT

Оператор INSERT вставляет новые строки в существующую таблицу. Оператор имеет несколько форм.

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

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

Синтаксис:

1. INSERT [LOW_PRIORITY | DELAYED] [IGNORE]

2. [INTO] имя_таблицы [(имя_столбца,...)]

3. VALUES (выражение,...),(...),...

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

Например:

mysql> INSERT INTO Persons

(last_name, bday) VALUES

('Иванов', '1934');

вставит в таблицу Persons строку, в которой значения фамилии ( last_name ) и даты рождения ( bday ) будут заданы соответственно как "Иванов" и "1934".

4. INSERT [LOW_PRIORITY | DELAYED] [IGNORE]

5. [INTO] имя_таблицы [(имя_столбца,...)]

6. SELECT ...

Эта форма команды INSERT вставляет строки, выбранные из другой таблицы или таблиц.

Например:

mysql> INSERT INTO Artifacts (author)

SELECT id FROM Persons

WHERE last_name='Иванов'

AND bday='1934';

вставит в таблицу Artifacts в поле "автор" ( author ) значение идентификатора, выбранного из таблицы Persons по условию, что фамилия человека Иванов и год рождения 1934.

7. INSERT [LOW_PRIORITY | DELAYED] [IGNORE]

8. [INTO] имя_таблицы

9. SET имя_столбца=выражение,

10. имя_столбца=выражение, ...

Например:

mysql> INSERT INTO Persons

SET last_name='Петров',

first_name='Иван';

Эта команда вставит в таблицу Persons в поле last_name значение "Петров", а в поле first_name - строку "Иван".

Форма INSERT... VALUES со списком из нескольких значений поддерживается в версии MySQL 3.22.5 и более поздних.

Синтаксис выражения имя_столбца=выражение поддерживается в версии MySQL 3.22.10 и более поздних.

Действуют следующие соглашения.

· Если не указан список столбцов для INSERT... VALUES или INSERT... SELECT , то величины для всех столбцов должны быть определены в списке VALUES() или в результате работы SELECT .

· Если порядок столбцов в таблице неизвестен, для его получения можно использовать DESCRIBE имя_таблицы.

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

· Выражение expression может относиться к любому столбцу, который ранее был внесен в список значений. Например, можно указать следующее:

· mysql> INSERT INTO имя_таблицы (col1,col2)

VALUES(15,col1*2);

Но нельзя указать:

mysql> INSERT INTO имя_таблицы (col1,col2)

VALUES(col2*2,15);

Мы еще не обсудили три необязательных параметра, присутствующих во всех трех формах команды: LOW_PRIORITY, DELAYED иIGNORE.

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

Если указывается ключевое слово LOW_PRIORITY, то выполнение данной команды INSERT будет задержано до тех пор, пока другие клиенты не завершат чтение этой таблицы.

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

В противоположность этому команда INSERT DELAYED позволяет данному клиенту продолжать операцию сразу же, независимо от других пользователей.

Если в команде INSERT указывается ключевое слово IGNORE, то все строки, имеющие дублирующиеся ключи PRIMARY или UNIQUEв этой таблице, будут проигнорированы и не внесены в таблицу. Если не указывать IGNORE, то данная операция вставки прекращается при обнаружении строки, имеющей дублирующееся значение существующего ключа.

Оператор UPDATE

Синтаксис:

UPDATE [LOW_PRIORITY] [IGNORE] имя_таблицы

SET имя_столбца1=выражение1

[, имя_столбца2=выражение2, ...]

[WHERE where_definition]

[LIMIT число]

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

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

Если задано выражение ORDER BY, то строки будут обновляться в указанном в нем порядке.

Если указывается ключевое слово LOW_PRIORITY, то выполнение данной команды UPDATE задерживается до тех пор, пока другие клиенты не завершат чтение этой таблицы.

Если указывается ключевое слово IGNORE, то команда обновления не будет прервана, даже если возникнет ошибка дублирования ключей. Строки, из-за которых возникают конфликтные ситуации, обновлены не будут.

Если в выражении, которое задает новое значение столбца, используется имя этого поля, то команда UPDATE использует для этого столбца его текущее значение.

Например, следующая команда устанавливает столбец death_date в значение, на единицу большее его текущей величины:

mysql> UPDATE Persons

SET death_date=death_date+1;

В версии MySQL 3.23 можно использовать параметр LIMIT #, чтобы убедиться, что было изменено только заданное количество строк.

Например, такая операция заменит в первой строке нашей таблицы экспонатов название title на строку "Ламповая ЭВМ":

mysql> UPDATE Artifacts

SET title='Ламповая ЭВМ' Limit 1;

Оператор DELETE

Оператор DELETE удаляет из таблицы имя_таблицы строки, удовлетворяющие заданным в where_definition условиям, и возвращает число удаленных записей.

Если оператор DELETE запускается без определения WHERE, то удаляются все строки.

Синтаксис:

DELETE [LOW_PRIORITY] FROM имя_таблицы

[WHERE where_definition]

[LIMIT rows]

Например, следующая команда удалит из таблицы Persons все записи, у которых поле "год рождения" ( bday ) больше 2003:

mysql> DELETE FROM Persons WHERE bday>2003;

Удалить все записи в таблице можно еще и с помощью такой команды:

mysql> DELETE FROM Persons WHERE 1>0;

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

mysql> DELETE FROM Persons;

Специфическая для MySQL опция LIMIT для команды DELETE указывает серверу максимальное количество строк, которые следует удалить до возврата управления клиенту.

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

Задания к работе

1. Каким образом команда INSERT используется для переноса данных из одной таблицы в другую?

2. В каких случаях необходимо динамически изменять структуру таблицы?

3. Каков формат SQL- предписаний, осуществляющих динамическое изменение структуры данных?

4. Каким образом пользователь может отслеживать возможные ошибки, возникающие вследствие непродуманного изменения структуры таблиц?


Подобные документы

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

    реферат [25,3 K], добавлен 16.06.2013

  • Цели, задачи и компоненты информационной технологии управления. Разработка структуры сайта и программный код работы в HTML–редакторе: создание титульной страницы, документа с фреймами, связь информационных документов с помощью гипертекстовых ссылок.

    курсовая работа [34,3 K], добавлен 11.08.2011

  • Концептуальное проектирование сайта по онлайн-продаже кофе, его древовидная логическая структура страниц. Описание языка гипертекстовой разметки сайта HTML, особенности отображения HTML-тегов в браузерах. Создание формы заказа для онлайн-торговли.

    курсовая работа [2,2 M], добавлен 16.04.2017

  • Структура HTML–документа. Синтаксис записи тега. Обозначение цветов в шестнадцатеричной системе счисления. Формат задания и параметры таблицы в документе, параметры её заголовка, строк и ячеек, группирование столбцов. Наследование свойств выравнивания.

    курсовая работа [318,8 K], добавлен 03.01.2014

  • Создание приложений: ProgressBar, вычисление по формуле, двумерный массив, калькулятор, медиа-плеер, одномерный массив, список, текстовый редактор. Создание различных обработчиков событий. Разработка заставки, окна ввода пароля и главной формы.

    лабораторная работа [781,7 K], добавлен 22.01.2015

  • Создание сайта при помощи HTML и CSS. Язык гипертекстовой разметки HTML и таблица стилей CSS. Основные понятия об этих языках, этапы и алгоритмы программного обеспечения. Добавление стилей в документ. Свойства элементов, принцип построения Web-страницы.

    курсовая работа [2,9 M], добавлен 12.01.2016

  • Устройство веб-приложений, преимущества их построения. Характеристика технологий веб-программирования, используемых на стороне сервера и на стороне клиента. Формирование и обработка запросов, создание интерактивного и независимого от браузера интерфейса.

    контрольная работа [76,4 K], добавлен 08.07.2014

  • Проектирование системы управления базами данных. Особенности реализации в MS SQL. Разработка пользовательского интерфейса. Тестирование и отладка приложения. Руководство пользователя и системного администратора. Анализ и методы разработки приложений.

    курсовая работа [867,9 K], добавлен 16.07.2013

  • Технические возможности средств вычислительной техники. Понятие "информационная система" в Web. Обеспечение переносимости приложений и информационных ресурсов между различными программно–аппаратными платформами. Тенденции в развитии технологий Web.

    курсовая работа [163,9 K], добавлен 25.05.2009

  • Рассмотрение понятия и классификации Web-технологий. Основные требования к созданию главной страницы сайта, раздела "О нас", контента, привязанности. Определение направлений использования языков программирования HTML, PHP, JavaScript, VBScript, Perl.

    курсовая работа [49,3 K], добавлен 13.07.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.