рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Примеры cgi-модулей

Примеры cgi-модулей - раздел Программирование, Использование CGI при создании интерактивных интерфейсов Примеры Cgi-Модулей. В Качестве Примера Рассмотрим Работу Тестовых Программ П...

Примеры cgi-модулей. В качестве примера рассмотрим работу тестовых программ поставляющихся вместе с программным обеспечением сервера НТТРD стандарта NCSA. Для тестирования работы форм поставляются программы post-query - для тестирования работы форм с методом запроса POST query - для тестирования работы форм с методом запроса GET util.c - описание функций для обработки входного потока используется query и post-query. Рассмотрим простой пример формы на языке HTML использующую программу query.

HTML HEAD TITLE Пример использования CGI TITLE HEAD BODY FORM ACTION http iceman.cnit.nsu.ru cgi-bin post-query METHOD POST B Введите свое имя I Фамилию Имя Отчество I B INPUT name RealName type text size 40 maxlength 60 value Петров Иван Сидорович P Пол INPUT name Sex type Radio value Мужской CHECKED - мужской INPUT name Sex type Radio value Женский -женский P INPUT name Submit type submit value Послать запрос BR INPUT name Reset type reset value Сброс FORM BODY HTML После инициации формы путем нажатия кнопки Послать запрос WWW сервер обрабатывает поток данных от формы заменяет все пробелы в именах и значениях на символ, заменяет все символы с десятичным кодом большим 128 на символ и следующим за ним шестнадцатеричным кодом символа например И в С8 . Выходной поток примет следующий вид RealName CF E5 F2 F0 EE E2 C8 E2 E0 ED D1 E8 E4 EE F0 EE E2 E8 F7 Sex CC F3 E6 F1 EA EE E9 Submit CF EE F1 EB E0 F2 FC E7 E0 EF F0 EE F1 В момент передачи управления модулю post-query сервер присваивает значения переменным окружения и аргументам командной строки argc 0. argv SERVER SOFTWARE NCSA 1.5.1 SERVER NAME iceman.cnit.nsu.ru GATEWAY INTERFACE CGI 1.1 SERVER PROTOCOL HTTP 1.0 SERVER PORT 80 REQUEST METHOD POST HTTP ACCEPT image gif, image x-xbitmap, image jpeg, image pjpeg, PATH INFO PATH TRANSLATED SCRIPT NAME cgi-bin test-cgi QUERY STRING REMOTE HOST fwa.cnit.nsu.ru REMOTE ADDR 193.124.209.74 REMOTE USER AUTH TYPE CONTENT TYPE application x-www-form-urlencoded CONTENT LENGTH 142 Результат работы post-query H1 Query Results H1 You submitted the following name value pairs p ul li code RealName Петров Иван Сидорович code li code Sex Мужской code li code Submit Послать запрос code ul И на экране браузера Query Results You submitted the following name value pairs RealName Петров Иван Сидорович Sex Мужской Submit Послать запрос Ниже приведен исходный текст программы post-query. include stdio.h ifndef NO STDLIB H include stdlib.h elsechar getenv endif define MAX ENTRIES 10000 typedef struct char name char val entry char makeword char line, char stop char fmakeword FILE f, char stop, int len char x2c char what void unescape url char url void plustospace char str main int argc, char argv entry entries MAX ENTRIES register int x, m 0 int cl printf Content-type text html c c ,10,10 if strcmp getenv REQUEST METHOD , POST printf This script should be referenced with a METHOD of POST. n printf If you don t understand this, see this printf A HREF http www.ncsa.uiuc.edu SDG Software Mosaic Docs fill-out-forms overview.html forms overview A . c ,10 exit 1 if strcmp getenv CONTENT TYPE , application x-www-form-urlencoded printf This script can only be used to decode form results. n exit 1 cl atoi getenv CONTENT LENGTH for x 0 cl !feof stdin x m x entries x .val fmakeword stdin cl plustospace entries x .val unescape url entries x .val entries x .name makeword entries x .val, printf H1 Query Results H1 printf You submitted the following name value pairs p c ,10 printf ul c ,10 for x 0 x m x printf li code s s code c, entries x .name, entries x .val,10 printf ul c ,10 Надо отметить, что post-query не обрабатывает имена, поэтому в примере они даны на английском языке.

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

Приведем также исходный текст функций используемых post-query char makeword char line, char stop Предназначена для выделения части строки, ограниченной стоп-символами int x 0,y char word char malloc sizeof char strlen line 1 for x 0 line x line x ! stop x word x line x word x 0 if line x x y 0 while line y line x return word char fmakeword FILE f, char stop, int cl Предназначена для выделения строки, ограниченной стоп-символом stop, из потока f длиной cl. int wsize char word int ll wsize 102400 ll 0 word char malloc sizeof char wsize 1 while 1 word ll char fgetc f if ll wsize word ll 1 0 wsize 102400 word char realloc word, sizeof char wsize 1 cl if word ll stop feof f ! cl if word ll ! stop ll word ll 0 return word ll char x2c char what Предназначена для преобразования шестнадцатиричного кода символа в код символа register char digit digit what 0 A ? what 0 0xdf - A 10 what 0 - 0 digit 16 digit what 1 A ? what 1 0xdf - A 10 what 1 - 0 return digit void unescape url char url register int x, y for x 0,y 0 url y x, y if url x url y url x x2c url y 1 y 2 url x 0 void plustospace char str замена символов на символ пробел register int x for x 0 str x x if str x str x Для демонстрации реализации формы с методом запроса GET воспользуемся той же самой формой, что и для метода POST и программой query.

Для этого изменим значение атрибутов ACTION и METHOD в теге FORM. FORM action http iceman.cnit.nsu.ru cgi-bin query METHOD GET После инициации формы сервер установит следующие значения для переменных окружения и аргументов командной строки argc 0. argv is SERVER SOFTWARE NCSA 1.5.1 SERVER NAME iceman.cnit.nsu.ru GATEWAY INTERFACE CGI 1.1 SERVER PROTOCOL HTTP 1.0 SERVER PORT 80 REQUEST METHOD GET HTTP ACCEPT image gif, image x-xbitmap, image jpeg, image pjpeg, PATH INFO PATH TRANSLATED SCRIPT NAME cgi-bin test-cgi QUERY STRING RealName CF E5 F2 F0 EE E2 C8 E2 E0 ED D1 E8 E4 EE F0 EE E2 E8 F7 Sex CC F3 E6 F1 EA EE E9 Submit CF EE F1 EB E0 F2 FC E7 E0 EF F0 EE F1 REMOTE HOST fwa.cnit.nsu.ru REMOTE ADDR 193.124.209.74 REMOTE USER AUTH TYPE CONTENT TYPE CONTENT LENGTH Как мы видим, выходной поток от формы появился в значении переменной QUERY STRING. Результат работы query полностью совпадает с результатом работы post-query.

Приложение 1 к гл.4 Конструкции языка HTML для построения форм FORM атрибуты FORM использование предназначен для получения информации от клиента и определяет начало и конец формы. атрибуты Обязательные ACTION - определяет URI Universal Resource Identifier-адрес или место расположения документа CGI-скрипта METHOD - определяет метод передачи информации скрипту.

Возможные значения GET или POST. Необязательные ENCTYPE - определяет тип MIME декодирования информации значение этого атрибута по умолчанию - application x-www-form-urlencoded. SCRIPT - используется для передачи URI скрипта.

Язык скрипта и интерфейс пользователя при этом не являются частью спецификации HTML 3.0 Важно Формы не могут быть вложенными! Для реализации формы используются следующие теги. INPUT использование предназначен для создания различных по своей функциональности полей ввода. атрибуты Обязательные TYPE - определяет тип поля формы. o Допустимые значения TEXT - позволяет символьный ввод. PASSWORD - предназначено для скрытого ввода символов вводимые символы не отображаются. CHECKBOX - поле, позволяющее два состояния есть, нет. Должен применяться с атрибутами NAME и VALUE RADIO - поле, позволяющее выбор один из всех SUBMIT - кнопка инициирующая передачу информации из формы обрабатывающему скрипту, определенному в ACTION в соответствии с методом, определенным атрибутом METHOD. RESET - кнопка, сбрасывающая все введенные ранее значения.

IMAGE - поле позволяющее воспроизвести событие SUBMIT при помощи вашего изображения, при этом возвращается два значения name.x координата Х и name.y координата Y, где Х и Y координаты положения курсора мыши на изображении в момент щелчка.

HIDDEN - поле создающее неотображаемое значение.

RANGE - определяет поле позволяющее ввести цифровое значение с определенными допустимыми верхним и нижним пределами.

Используется вместе с атрибутами MAX и MIN определяющими область допустимых значений например TYPE RANGE MIN 1 MAX 10 . NAME - значение этого атрибута определяет идентификатор поля. VALUE - значение этого атрибута определяет что будет передано в качестве значения по умолчанию для данного поля при инициации формы.

SRC - определяет URI файла изображения.

Используется только с типом поля IMAGE. CHECKED - позволяет установить начальное значение поля типа CHECKBOX. SIZE - определяет размер поля. MAXLENGTH - определяет максимальное количество символов, допустимое для ввода в поле. ALIGN - позволяет позиционирование o Допустимые значения o по вертикали TOP - выравнивание по верху. MIDDLE - выравнивание по середине.

BOTTOM выравнивание по низу. Эти значения используются только с TYPE IMAGE. o по горизонтали LEFT - выравнивание слева RIGHT - выравнивание справа DISABLED - определяет поле как read only - только для чтения.

Значение в поле не может быть изменено пользователем. ERROR - определяет сообщение об ошибке, объясняющее, почему введенное значение в поле не верно.

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

Размер поля определяется атрибутами. атрибуты NAME - значение этого атрибута определяет идентификатор поля. Возвращается при инициации формы.

ROWS - определяет количество строк в текстовой области.

COLS - определяет количество столбцов в текстовой области. VALUE - задает значение по умолчанию.

DISABLED - определяет поле как read only - только для чтения.

Значение в поле не может быть изменено пользователем. ERROR - определяет сообщение об ошибке, объясняющее, почему введенное значение в поле не верно. SELECT атрибуты OPTION значение1 OPTION значениеN SELECT использование предназначен для определения области выбора из нескольких значений меню. Атрибуты NAME - значение этого атрибута определяет идентификатор поля. Возвращается при инициации формы. SIZE - определяет количество видимых возможных значений.

MULTIPLE - определяет возможность множественного выбора. DISABLED - определяет меню как read only - только для чтения. Значения в меню не может быть выбрано пользователем и показывается серым цветом. OPTION атрибуты значение использование используется только с SELECT для определения пунктов меню. атрибуты SELECTED - определяет значение по умолчанию VALUE - определяет возвращаемое значение Примечание в даны необязательные атрибуты.

– Конец работы –

Эта тема принадлежит разделу:

Использование CGI при создании интерактивных интерфейсов

Для WWW, интерактивный интерфейс можно определить как последовательность HTML-документов, реализующих интерфейс пользователя. Можно также условно классифицировать принципы построения интерфейса по типу… Таким образом, можно ввести понятие интерактивного интерфейса для WWW. Интерактивный интерфейс для WWW представляет…

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Примеры cgi-модулей

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

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

Аргументы командной строки
Аргументы командной строки. СGI-модуль в командной строке от сервера получает остаток URL после имени cgi-модуля в качестве первого параметра первый параметр будет пуст, если присутствовало только

Для метода GET
Для метода GET. Получить значение переменной QUERY STRING 2. Декодировать имена и их значения учитывая, что все пробелы при декодировании сервером были заменены символом и все символы с десятичным

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги