imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 17.10.2002, 08:08     # 1
Zneff
Guest
 
Сообщения: n/a

CGI на С

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

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

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

Мучаюсь вот
Может кто сталкивался?
 
Старый 17.10.2002, 14:51     # 2
helldomain
Administrator
 
Аватар для helldomain
 
Регистрация: 13.05.2002
Сообщения: 11 227

helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
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;
}
helldomain вне форума  
Старый 17.10.2002, 15:59     # 3
Zneff
Guest
 
Сообщения: n/a

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

Так вот это иначе почему-то не проходит...
 
Старый 17.10.2002, 16:06     # 4
helldomain
Administrator
 
Аватар для helldomain
 
Регистрация: 13.05.2002
Сообщения: 11 227

helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
Smotret nado. Kidai ishodnik.
helldomain вне форума  
Старый 18.10.2002, 08:41     # 5
Zneff
Guest
 
Сообщения: n/a

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";
}
 
Старый 18.10.2002, 12:08     # 6
helldomain
Administrator
 
Аватар для helldomain
 
Регистрация: 13.05.2002
Сообщения: 11 227

helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
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;
}
helldomain вне форума  
Старый 20.10.2002, 20:07     # 7
Zneff
Guest
 
Сообщения: n/a

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

Если не сложно, не мог бы ты посмотреть листинг...
Проблема в том, что он запускается как программа (просто через экзешник), а при вызове через броузер без формы (query) не хочет (стоит Apache)...
 
Старый 21.10.2002, 04:32     # 8
helldomain
Administrator
 
Аватар для helldomain
 
Регистрация: 13.05.2002
Сообщения: 11 227

helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
helldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиургhelldomain Демиург
Chto znachit ne hochet? Posmotri ishodnik. Tam idet prowerka tipa zaprosa (GET/POST) i esli nichego etogo net on otrubaetsya.
__________________
Осколки прошлого, как снег, закрутит ураган времён,
В ушедший день для нас навек, обрушив мост,
Оставив в наших душах след, тьма уплывёт за горизонт,
И в чистом небе вспыхнет свет, свет новых звёзд.
helldomain вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


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




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