Сетевые технологии. Баканов В.М. - 15 стр.

UptoLike

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

- 15 -
управляющим полем (кнопка, при нажатии на которую данные передаются
WWW-серверу); для обработки данных вызывается скрипт
./cgi_bin/cgi_builder.exe, метод обработки – POST).
Переданная HTML-формой информация представлена в виде строки
(здесь имяN – имя соответствующего поля формы, значениеN – введенное
пользователем значение в соответствующее имяN поле):
имя1=значение&имя2=значение2&имя3=значение3
В приведенном выше случае эта строка (при нажатии кнопкиПослать
данные на сервербез пользовательского ввода) будет иметь вид:
f_name=peter&l_name=penn&old=18
Заметим, что такая же передаваемая серверу строка соответствует HTML-
предписанию (однако метод передачи данных в этом случае будет GET):
<a href="./cgi_bin/cgi_builder.exe?f_name=peter&l_name=penn&old=18">Послать
данные серверу</a>
Вводимые в поля формы данные могут содержать пробелы (заменяемые в
посылаемой строке на ‘+’), символы ‘&’ и запятая кодируются к %26 и %2C
соответственно, символы национальных алфавитов представляются в виде
шестнадцатиричных кодов вида ‘%XX’. Таким образом, программы CGI и
ISAPI обязаны проводить соответствующее декодирование принятой сим-
вольной строки.
В случае метода GET значение переданной строки CGI-программа
может
получить (программа в стиле С) посредством операторов:
char *sQueryStr;
…..
sQueryStr=getenv(“QUERY_STRING”); // …значение переменной QUERY_STRING
а в случае метода POST:
int Size;
char sQueryString[4098];
…..
size=atoi(getenv(“CONTENT_LENGTH”)); // длина сообщения
fread(sQueryString, Size, 1, stdin); // скопировать из stdin в буфер sQueryString
Заметим, что именно посредством функции
getenv(“имя_переменной
управляющим полем (кнопка, при нажатии на которую данные передаются
WWW-серверу);            для    обработки     данных вызывается скрипт
./cgi_bin/cgi_builder.exe, метод обработки – POST).
    Переданная HTML-формой информация представлена в виде строки
(здесь имяN – имя соответствующего поля формы, значениеN – введенное
пользователем значение в соответствующее имяN поле):

имя1=значение&имя2=значение2&имя3=значение3

   В приведенном выше случае эта строка (при нажатии кнопки ‘Послать
данные на сервер’ без пользовательского ввода) будет иметь вид:

f_name=peter&l_name=penn&old=18

  Заметим, что такая же передаваемая серверу строка соответствует HTML-
предписанию (однако метод передачи данных в этом случае будет GET):

Послать
данные серверу

   Вводимые в поля формы данные могут содержать пробелы (заменяемые в
посылаемой строке на ‘+’), символы ‘&’ и запятая кодируются к %26 и %2C
соответственно, символы национальных алфавитов представляются в виде
шестнадцатиричных кодов вида ‘%XX’. Таким образом, программы CGI и
ISAPI обязаны проводить соответствующее декодирование принятой сим-
вольной строки.
   В случае метода GET значение переданной строки CGI-программа может
получить (программа в стиле С) посредством операторов:

char *sQueryStr;
…..
sQueryStr=getenv(“QUERY_STRING”); // …значение переменной QUERY_STRING

  а в случае метода POST:

int Size;
char sQueryString[4098];
…..
size=atoi(getenv(“CONTENT_LENGTH”)); // длина сообщения
fread(sQueryString, Size, 1, stdin); // скопировать из stdin в буфер sQueryString

  Заметим, что именно посредством функции getenv(“имя_переменной

                                         - 15 -