ВУЗ:
Составители:
Рубрика:
- 19 -
ту); исполняемый файл CGI_CPP.EXE должен находиться в каталоге
S:\TEST_CGI\CGI_BIN\. С целью компиляции в C++Builder вер.3 или 4 не
требующего дополнительных BPL- и DLL-файлов приложения следует в
вызываемом посредством выбора в главном меню варианта
Project|Options…
окне
Project Options интегрированной среды снять флаги с указателя Build
with runtime packages (закладка Packages) и с указателя Use dynamic RTL (за-
кладка
Linker). Исходный текст C-приложения приведен ниже [3]:
void DecodeStr(char *sString);
char DecodeHex(char *str);
//---------------------------------------------------------------------------
void
__fastcall TForm1::MainFormCreate(TObject *Sender)
// выполняется при создании формы MainForm
{ FILE *f;
char sBuff[8196], // буфер для принятых от броузера данных
sSubStr[512]; // буфер для каждой подстроки
int lData; // длина буфера полученных данных
//
//f=fopen("s:\\a.htm", "w+"); // вывод в дисковый файл для отладки приложения
f=stdout;
//
// вывод строки заголовка HTTP
fprintf(f, "Content-type: text/html\n\n"); // обязательно \n\n !!!
//
// определение метода передачи параметров (берется из переменной
// среды REQUEST_METHOD)
char *sMethod=getenv("REQUEST_METHOD");
//
if (!strcmp(sMethod, "POST")) // это метод POST !!!
{
fprintf(f, "Используется метод посылки данных POST<P>");
//
// определение общей длины полученных от броузера данных
// (берется из CONTENT_LENGTH)
lData=atoi(getenv("CONTENT_LENGTH"));
// копируем эти данные (длиной lData) из входного потока stdin в буфер sBuff
fread(sBuff, lData, 1, stdin);
sBuff[lData]='\0'; // закрываем строку нулем
} // конец взятия данных методом POST
//
else
if (!strcmp(sMethod, "GET")) // это метод GET !!!
{
fprintf(f, "Используется метод посылки данных GET<P>");
// получить данные из переменной среды QUERY_STRING
strcpy(sBuff, getenv("QUERY_STRING"));
lData=strlen(sBuff);
ту); исполняемый файл CGI_CPP.EXE должен находиться в каталоге S:\TEST_CGI\CGI_BIN\. С целью компиляции в C++Builder вер.3 или 4 не требующего дополнительных BPL- и DLL-файлов приложения следует в вызываемом посредством выбора в главном меню варианта Project|Options… окне Project Options интегрированной среды снять флаги с указателя Build with runtime packages (закладка Packages) и с указателя Use dynamic RTL (за- кладка Linker). Исходный текст C-приложения приведен ниже [3]: void DecodeStr(char *sString); char DecodeHex(char *str); //--------------------------------------------------------------------------- void __fastcall TForm1::MainFormCreate(TObject *Sender) // выполняется при создании формы MainForm { FILE *f; char sBuff[8196], // буфер для принятых от броузера данных sSubStr[512]; // буфер для каждой подстроки int lData; // длина буфера полученных данных // //f=fopen("s:\\a.htm", "w+"); // вывод в дисковый файл для отладки приложения f=stdout; // // вывод строки заголовка HTTP fprintf(f, "Content-type: text/html\n\n"); // обязательно \n\n !!! // // определение метода передачи параметров (берется из переменной // среды REQUEST_METHOD) char *sMethod=getenv("REQUEST_METHOD"); // if (!strcmp(sMethod, "POST")) // это метод POST !!! { fprintf(f, "Используется метод посылки данных POST"); // // определение общей длины полученных от броузера данных // (берется из CONTENT_LENGTH) lData=atoi(getenv("CONTENT_LENGTH")); // копируем эти данные (длиной lData) из входного потока stdin в буфер sBuff fread(sBuff, lData, 1, stdin); sBuff[lData]='\0'; // закрываем строку нулем } // конец взятия данных методом POST // else if (!strcmp(sMethod, "GET")) // это метод GET !!! { fprintf(f, "Используется метод посылки данных GET
"); // получить данные из переменной среды QUERY_STRING strcpy(sBuff, getenv("QUERY_STRING")); lData=strlen(sBuff); - 19 -
Страницы
- « первая
- ‹ предыдущая
- …
- 17
- 18
- 19
- 20
- 21
- …
- следующая ›
- последняя »