IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   CGI на С (http://www.imho.ws/showthread.php?t=13286)

Zneff 17.10.2002 08:08

CGI на С
 
Кто нибудь знает как сделать, что бы при запуске программы без параметров она что-нибудь делала?

Смысл в том, что у меня с GET или POST все нормально, а при запуске непосредственно проги (.../cgi-bin/xxx.exe) и даже через в Ctrl-F9 в С++ она выдает ошибку, причем через коды ассемблера.

Кстати, при компилировании в DOS среде (С++ 3.11) она все проглатывает, даже запускается, а уже под Win никак

Мучаюсь вот :баран:
Может кто сталкивался?

helldomain 17.10.2002 14:51

Ya ne sowsem ponyal wopros...

#include <stdio.h>

int main(void)
{
printf("Content-type: text/plain\n\nWot ona chto-to delaet.\n");
return 0;
}

Zneff 17.10.2002 15:59

Ну всмысле... Есть примерно такой кусок:
Если REQUEST_METHOD == GET
выделение параметров;
Если RECQEST_METHOD == POST
выделение параметров;
Иначе
вывод чего=либо на экран...

Так вот это иначе почему-то не проходит...

helldomain 17.10.2002 16:06

Smotret nado. Kidai ishodnik.

Zneff 18.10.2002 08:41

if( !strcmp(getenv("REQUEST_METHOD"),"POST") )
{
unsigned int len;
len = atoi( getenv("CONTENT_LENGTH") );
query = (char*)malloc(len+1);
fread(query, 1, len, stdin);
query[len] = 0;
}
if( !strcmp(getenv("REQUEST_METHOD"),"GET") )
{
query=(char*)malloc( strlen(getenv("QUERY_STRING"))+1 );
strcpy(query,getenv("QUERY_STRING"));
}
else
{
query = (char*)malloc(300);
query = "text=error";
}

helldomain 18.10.2002 12:08

if( !strcmp(getenv("REQUEST_METHOD"),"POST"))

Posmotri wnimatelno na etu stroku. Esli ti wiziwaesh eto iz obolochki, gde peremennaya REQUEST_METHOD ne opredelena, ti poluchaesh: strcmp(NULL, "POST"). Eto rabotat ne budet. Ti srawniwaesh NULL i stroku. __strcmp wzorwetsya. Wpishi eto pered nachalom twoego kuska:

if (! getenv("REQUEST_METHOD"))
{
printf("No required OS vars defined. Error.");
return 1;
}

Zneff 20.10.2002 20:07

Большое спасибо!!!
Как раз в этом и была моя ошибка...

Если не сложно, не мог бы ты посмотреть листинг...
Проблема в том, что он запускается как программа (просто через экзешник), а при вызове через броузер без формы (query) не хочет (стоит Apache)...

helldomain 21.10.2002 04:32

Chto znachit ne hochet? Posmotri ishodnik. Tam idet prowerka tipa zaprosa (GET/POST) i esli nichego etogo net on otrubaetsya.


Часовой пояс GMT +4, время: 00:57.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.