Листинг 7.5. Файл chap7\cgihello\cgihello. c
#include <stdio.h>
#include <stdlib.h>
void main(int argc, char *argv[])
{
printf(*Content-type: text/html\n\n");
printf("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">");
printf("<HTML><HEAD><TITLE>
XYZ Incorporation</TITLE></HEAD><BODY>");
printf("<H1>Результат роботи програми CGI/H1>");
printf("<P>Ця сторінка створена динамічно в результаті"
"роботи програми СGI");
printf("</BODY></HTML>");
}
Програма не відрізняється особливою складністю і складається з ряду викликів функції pdntf.
У перший разом функція printf виводить заголовок HTTP і порожню рядок-роздільник. Далі програма CGIHELLO записує построчно в стандартний потік висновка STDOUT текст документа HTML.
7.5.2. Програма CONTROLS
Більш складна програма CGI називається CONTROLS і виконує опрацювання даних, отриманих із форми, що була показана на мал. 7.2. Вихідний текст документа HTML із цією формою подані в листинге 7.1.
Програма CONTROLS відображає в динамічно формованому документі HTML метод, використаний для передачі (POST або GET), розмір і тип даних, що надходять від форми. Прийняті дані показуються як у вихідному виді, так і після перекодування. Крім того, у документі HTML розташовується список значень усіх поляж, визначених у формі (мал. 7.7).
З малюнка очевидно, що навігатор надіслав серверу WWW 135 байт інформації. Тому що при цьому був використаний метод POST, дані були спрямовані в стандартний потік запровадження INPUT. Дані закодированы в кодировке URL, тому що вміст перемінне середовище CONTENTJTYPE дорівнює application/x-www-form-urlencoded.
Звернете увагу на текстове поле з ім'ям textl. Всі прогалини у відповідному рядку в кодировке URL замінені на символ +. Що ж стосується символу & і символу запятой, то вони прийшли у виді %26 і %2С. Функція перекодирования повертає рядок у вихідний вид - Sample of text1 &,.
Форма, показана на мал. 7.2, має дві кнопки, призначені для передачі даних серверу WWW. Це звичайна кнопка і кнопка у виді графічного зображення. Після натискання графічної кнопки від форми приходить інформація про координати курсору миші у виді перемінних з іменами х и у.
Мал. 7.7. Фрагмент документа, сформованого динамічно програмою CONTROLS
Роздивимося вихідний текст програми CONTROLS (листинг 7.6).
Дата добавления: 2015-04-19; просмотров: 625;