Сетевые технологии. Учебное пособие. Баканов В.М. - 90 стр.

UptoLike

Составители: 

90
При использовании
METHOD=POST
программа CGI получает данные из
формы через стандартный поток ввода
stdin
(для чтения удобно использовать
С-функции
fread
или
scanf
) в аналогичном методу
GET
формате, причем ко-
личество байт в
stdin
передается CGI-программе через переменную среды с
именем
CONTENT_LENGTH:
int Size;
Size = atoi(getenv("CONTENT_LENGTH")); // получить длину строки
char szBuf[8196];
fread(szBuf, Size, 1, stdin); // прочитать полученные данные
Метод
GET
применяется относительно редко (длина строки
QUERY_STRING
ограничена), метод
POST
более предпочтителен.
Вне зависимости от примененного метода передачи данных (
GET
или
POST) результат своей работы программа CGI должна направлять в стандарт-
ный поток вывода
stdout
(при этом WWW-сервер гарантирует возврат данных
броузеру локального компьютера). Ниже приведен пример динамической
генерации CGI-программой документа HTML и направления его на
stdout
Рисунок 7.12 — Отображение простейшей формы броузером.
          Рисунок 7.12 — Отображение простейшей формы броузером.


  При использовании METHOD=POST программа CGI получает данные из
формы через стандартный поток ввода stdin (для чтения удобно использовать
С-функции fread или scanf) в аналогичном методу GET формате, причем ко-
личество байт в stdin передается CGI-программе через переменную среды с
именем CONTENT_LENGTH:

int Size;
Size = atoi(getenv("CONTENT_LENGTH")); // получить длину строки

char szBuf[8196];
fread(szBuf, Size, 1, stdin); // прочитать полученные данные

  Метод  GET применяется относительно редко            (длина      строки
QUERY_STRING ограничена), метод POST более предпочтителен.
  Вне зависимости от примененного метода передачи данных (GET или
POST) результат своей работы программа CGI должна направлять в стандарт-
ный поток вывода stdout (при этом WWW-сервер гарантирует возврат данных
броузеру локального компьютера). Ниже приведен пример динамической
генерации CGI-программой документа HTML и направления его на stdout

                                  90