|
Программирование >> Руководство по созданию web приложений
В первый раз функция printf выводит заголовок HTTP и пустую строку-разделитель. Далее программа CGIHELLO записывает построчно в стандартный поток вывода текст документа HTIVIL. Программа CONTROLS Более сложная программа CGI с названием CONTROLS выполняет обработку данных, полученных из формы, показанной на рис. 7-2. Т i - шш TEXT ARE \ CHECKBOX ПервьЛ Третий Send Рис. 7-2. Поле с элементами различныхтипов Рассмотрим исходный текст программы CGIHELLO (листинг 7-2). Листинг 7-2 Вы найдете в файле ch7\cglliello\cgiliello.c на прилагаемом к книге компакт-диске. Эта консольная программа не отличается особой сложностью и состоит из ряда вызовов функции printf, выполняемых функцией main:, void maindnt argc, char arovL]) { - : :. : HTML PUBLIC ---V- : HTML 3.2 Ei\> ); Программы : -. : работы программы CGi</ni> ); страница - динамически в результате работы программы ; amp] поело of . of teit&c . : fis St Список иилей ample of Рис. 7-3. Документ HTML, сформированный динамически программой CONTROLS Из рисунка видно, что браузер прислал серверу Web 127 байт информации. Так как при этом метод POST, данные были направлены в стандар- тный поток ввода. Они представлены в кодировке URL, так как содержимое переменой . -ь . равно -. - -f. . . \-::.detJ Обратите внимание на текстовое поле с именем rextl. Все пробелы в соответствующей в кодировке I 1Г1,заменены символом Символы *!.> и ввиде -- и 12С* Функция перекодирования возвращает стро-исходный вид Sample of textl . Форма, показанная на рис. 7-2, имеет две кнопки, предназначенные для пе-данных серверу Web. Это обычная кнопка и кнопка в графическом виде. Мы щелкнули графическую кнопку, от формы пришла информация о координатах курсора мыши в i переменных с именами х и у. Исходный текст этой формы представлен в листинге 7-3. Листинг 7-3 Вы найдете в файле ch7iconifeli\controts.htnn на прилагаемом к книге компакт-диске. Программа CONTROLS отображает в динамически формируемом документе ПТМТ метод, использованный для передачи (POST или GET), а также размер и тип поступающих от формы. Принятые данные отображаются как в исходном так и после перекодировки. Кроме того, в созданном динамически документе ПТМТ Вы сможете увидеть список значений всех полей, определенных в форме (рис. 7-3). Исходный текст программы CONTROLS приведен в листинге 7-4. Листинг 7-4 Вы найдете в файле cfi7tecintrols\contrels.c на прилагаемом к книге ноипакт-дискв. После запуска функция main программы CONTROLS выводит в стандартный ноток вывода заголовок ПТТР и начальные строки динамически формируемого документа HTML. Для вывода мы использовали функцию printf: . PUBLIC HTML CGI Далее функция main определяет использованный метод передачи данных, анализируя содержимое переменной среды BEQUI:ST, JE.THOri: else Это так как при разных методах передачи нужно использовать различные методы получения данных. Значение переменной среды программа получает при функции getenv. Если данные передаются методом POST, программа будет считывать их из стандартного потока ввода. Размер данных находится в переменной среды СОМ-TENT LENGTH. Соответствующая текстовая строка получается функцией getenv и преобразуется в численное atoi. Чтение данных из входного потока выполняется за один вызов f raad: ].E:ize = аixaiСagtijav( COEIEET LEND : . ISi=e, 1, - - Этой функции мы передаем адрес буфера для записи принятых данных, размер данных, количество буферов, которые нужно считать, и входной поток. Программа CGI сохраняет принятые данные в файле для дальнейшей обработки. Паша программа создает в текущем каталоге файл с названием recei- f il-F--i -l opsnCreceivecl, dat , w ). iiiize, 1, fileReceived); voo); каталогом при запуске этой программы в среде сервера Microsoft Information Server будет каталог с загрузочным модулем программы CONT-
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |