Сервер Web своими руками. Язык HTML, приложения CGI и ISAPI




Программа CONTROLS - часть 2


#include <stdio.h>

#include <stdlib.h>

#include <string.h>

// Прототипы функций перекодировки

void DecodeStr(char *szString);

char DecodeHex(char *str);

// ------------------------------------------------

// Функция main

// Точка входа программы CGI

// ------------------------------------------------

void main(int argc, char *argv[])

{

  int lSize;

  FILE * fileReceived;

  char * szMethod;

  char * szQueryString;

  char szBuf[8196];

  char szSrcBuf[8196];

  char * szPtr;

  char * szParam;

  // Вывод заголовка HTTP и разделительной строки

  printf("Content-type: text/html\n\n");

  // Вывод начального форагмента документа HTML,

  // формируемого динамически

  printf("<!DOCTYPE HTML PUBLIC"

    " \"-//W3C//DTD HTML 3.2//EN\">");

  printf("<HTML><HEAD><TITLE>XYZ Incorporation"

    "</TITLE></HEAD><BODY BGCOLOR=#FFFFFF>");

  // Определяем метод передачи данных

  szMethod = getenv("REQUEST_METHOD");

  // Обработка метода POST

  if(!strcmp(szMethod, "POST"))

  {

    // Определяем размер данных, полученных от навигатора

    // при передаче данных из полей формы

    lSize = atoi(getenv("CONTENT_LENGTH"));

    // Читаем эти данные в буфер szBuf из

    // стандартного потока ввода STDIN

    fread(szBuf, lSize, 1, stdin);

    // Создаем файл, в который будут записаны

    // принятые данные

    fileReceived = fopen("received.dat", "w");

    // Выполняем запись принятых данных

    fwrite(szBuf, lSize, 1, fileReceived);

    // Закрываем файл принятых данных

    fclose(fileReceived);

    // Отображаем значения некоторых переменных среды

    printf("<H2>Переменные среды</H2>");

   

    // Метод доступа

    printf("REQUEST_METHOD = %s", getenv("REQUEST_METHOD"));




Содержание  Назад  Вперед