/* program GetPostTest */
#include <Windows.hpp>
int ContentLength, i;
char St1[50], //Название метода
St2[200]; //Строка параметров
char c;
void main(void)
{
// Получаем название метода
GetEnvironmentVariable("REQUEST_METHOD",St1,50);
// Устанавливаем для символов верхний регистр
i = strlen(St1);
while (i>0)
{
St1[i-1] = UpCase(St1[i-1]);
i--;
}
// Анализируем метод передачи данных
if (strcmp(St1,"GET") == 0)
{
// Получаем строку параметров
GetEnvironmentVariable("QUERY_STRING",St2,200);
}
if (strcmp(St1,"POST") == 0)
{
// Получаем длину строки параметров
GetEnvironmentVariable("CONTENT_LENGTH",St2,50);
// Преобразуем строку в число
ContentLength = atoi(St2);
// Считываем символы из стандартного потока ввода
for (i=0; i<ContentLength; i++)
{
scanf("%c",C);
St2[i] = C; St2[i+1] = 0;
}
}
// Формируем поле заголовка Content-Type
puts("Content-Type: text/html");
// Формируем пустую строку,отделяющую
// заголовок от тела ответа
puts("");
// Построчно формируем HTML-документ
puts("<HTML>");
puts("<HEAD>");
puts("<TITLE>Пример №3. Передача и прием данных</TITLE>");
puts("</HEAD>");
puts("<BODY>");
puts("<H2 ALIGN=CENTER>CGI-приложение принимает параметры</H2>");
printf("<H2 ALIGN=CENTER>Method %s</H2>\n", St1);
printf("<H2 ALIGN=CENTER>Строка параметров: %s</H2>\n", St2);
puts("</BODY>");
puts("</HTML>");
}
Откомпилируем приложение и скопируем файл GetPostTest.cgi на устройство W.
Для проверки работоспособности приведенного приложения воспользуемся HTML-документом JStest.html и дополним его описанием еще одной формы c двумя элементами управления - полем ввода и кнопкой, расположив описание этой формы перед тегом </BODY>:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.