Сервер Web своими руками. Язык HTML, приложения CGI и ISAPI




Программа CONTROLS


Более сложная программа CGI называется CONTROLS и выполняет обработку данных, полученных из формы, которая была показана на рис. 7.2. Исходный текст документа HTML с этой формой представлен в листинге 7.1.

Программа CONTROLS отображает в динамически формируемом документе HTML метод, использованный для передачи (POST или GET), размер и тип данных, поступающих от формы. Принятые данные показываются как в исходном виде, так и после перекодировки. Кроме того, в документе HTML располагается список значений всех полей, определенных в форме (рис. 7.7).

Рис. 7.7. Фрагмент документа, сформированного динамически программой CONTROLS

Из рисунка видно, что навигатор прислал серверу WWW 135 байт информации. Так как при этом был использован метод POST, данные были направлены в стандартный поток ввода INPUT. Данные закодированы в кодировке URL, так как содержимое переменой среды CONTENT_TYPE равно application/x-www-form-urlencoded.

Обратите внимание на текстовое поле с именем text1. Все пробелы в соответствующей строке в кодировке URL заменены на символ “+”. Что же касается символов “&” и “,”, то они пришли в виде %26 и %2C. Функция перекодирования возвращает строку в исходный вид - “Sample of text1 &,.”.

Форма, показанная на рис. 7.2, имеет две кнопки, предназначенные для передачи данных серверу WWW. Это обычная кнопка и кнопка в виде графического изображения. Мы нажали графическую кнопку, поэтому от формы пришла информация о координатах курсора мыши в виде переменных с именами x и y.

Рассмотрим исходный текст программы CONTROLS (листинг 7.6).

Листинг 7.6. Файл chap7\controls\controls.c

// ===============================================

// Программа CGI controls.c

// Демонстрирует методы получения и обработки

// данных от форм, расположенных в документах HTML

//

// (C) Фролов А.В., 1997

// E-mail: frolov@glas.apc.org

// WWW:    http://www.glasnet.ru/~frolov

//         или

//         http://www.dials.ccas.ru/frolov

// ===============================================




Содержание  Назад  Вперед