Avatar billede food4u.dk Nybegynder
29. maj 2001 - 12:48 Der er 16 kommentarer og
1 løsning

Bruge C++ som CGI, hvordan?

Jeg er igang med at lave et lille program, som skal kunne vises på nettet, det skal altså køre som .exe fra mit cgi-bin, men der er lige to problemer:

1) Hvis jeg compiler det her:
#include <iostream.h>

void main(void)

{
cout << \"<html><head><title>Hello world</title></head><body>\";
cout << \"Hello world!</html></body>\";
}

Så får jeg det her:
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:


Hello world!

Hvorfor det?

2) Hvis man sender noget til programmet, via \"form\", så kommer det til at stå sådan:
http://noget.dk/cgi-bin/noget.exe?navn=Christoffer&email=eksperten@food4u.dk

Hvordan får man så indlæst det i programmet?

MVH
Christoffer

PS: Det er ikke mange point, men det er alt hvad jeg har.
Avatar billede wisen Nybegynder
29. maj 2001 - 12:53 #1
Prøv at se lidt på dette spg : http://www.eksperten.dk/spm/75158
Avatar billede henrik_ffc Nybegynder
29. maj 2001 - 12:57 #2
ad 1)
Du sender ingen header retur.

Prøv at ændre til :
{
cout << \"Content-Type: text/html\\n\\n\";
cout << \"<html><head><title>Hello world</title></head><body>\";
cout << \"Hello world!</html></body>\";
}

ad 2)
Hvis du benytter method=post overføres parametre til stdin så du kan bruge
cin >> ....

Henrik
Avatar billede food4u.dk Nybegynder
29. maj 2001 - 13:05 #3
henrik > mener du sådan:

#include <iostream.h>

void main(void)

{
int input;

cout << \"Content-Type: text/html\\n\\n\";
cout << \"<html><head><title>Hello world</title></head><body>\";
cout << \"Hello world!</html></body>\";
cin >> input;
cout << input;
}

også man skriver:
http://noget.dk/cgi-bin/noget.exe?input=Hej verden
Avatar billede henrik_ffc Nybegynder
29. maj 2001 - 13:21 #4
Nej nærmere noget i stil med:

HTML:
=====
<form action=\"noget.exe\" method=post>
Indtast tal: <input type=\"text\" name=\"tal\">
<input type=\"submit\">
</form>


og så programmet:
=================
#include <iostream.h>
#include \"string.h\"

void main(void)

{
String input;
cin >> input;

cout << \"Content-Type: text/html\\n\\n\";
cout << \"<html><head><title>Hello world</title></head><body>\";
cout << input;
cout << \"</html></body>\";
}


Så burde der udskrives fx \"tal=100\" hvis du indtastede \"100\".
Du vil sikkert parse input så du kun får tallet og ikke \"tal=100\".
Avatar billede henrik_ffc Nybegynder
29. maj 2001 - 13:23 #5
Men det ER en del nemmere i PHP !!!
:-)
Avatar billede food4u.dk Nybegynder
29. maj 2001 - 13:29 #6
henrik > tja, men det skal bruges til at styre noget elektronik på længere sigt, derfor :o)
Avatar billede food4u.dk Nybegynder
29. maj 2001 - 13:42 #7
Hmm, hvis jeg køre den fra dos, så virker det bare

men når man køre den på serveren, så hænger den bare
Avatar billede nebula Nybegynder
30. maj 2001 - 23:04 #8
måske tager jeg fejl, men jeg mener nu ikke at du kan bruge cin til hverken post eller get. GET ligger data\'en i en environment variable kaldet QUERY_STRING) (kan læses via getenv() ), hvorimod POST\'s bliver sendt som argument til programmet, hvorfor f.eks.:

#include <iostream>
int main(int argc, char *argv[])
{
std::cout << *argv[1/*2-3-4-etc*/] << std::endl;
}

burde returnere noget på en post.
Avatar billede nebula Nybegynder
30. maj 2001 - 23:05 #9
Erhm ... husk content-type headeren.. den glemte jeg jo :o/
Avatar billede emileej Nybegynder
03. juni 2001 - 19:15 #10
cin???!
Er du skør? :)
get_env(\"QUERY_STRING\");
er ikke helt sikker på get_env (det er funktionen til at få en enviroment variabel).
Jeg har en .h fil der gør al det hårde for dig - jeg kan sende den... :)

E-)mil
http://eej.dk
http://fotx.net/emileej
Avatar billede emileej Nybegynder
03. juni 2001 - 19:17 #11
>>nebula

Zorry - så ikk dit svar med QUERY_STRING :)
...
men den der .h fil funker også med post metoden :)

E-)mil
Avatar billede food4u.dk Nybegynder
03. juni 2001 - 19:35 #12
emileej > vil du sende den til mig?

cgi@food4u.dk
Avatar billede emileej Nybegynder
04. juni 2001 - 08:35 #13
Afsendt :)
Avatar billede food4u.dk Nybegynder
04. juni 2001 - 14:48 #14
Takker mange gange :o)

Avatar billede emileej Nybegynder
04. juni 2001 - 15:26 #15
Accepterer du så ikke liiige - der er i forvejen for mange spm. der står og roder i denneher kategori? :)
Avatar billede food4u.dk Nybegynder
04. juni 2001 - 15:28 #16
sorry, det glemte jeg
Avatar billede food4u.dk Nybegynder
04. juni 2001 - 15:28 #17
ps: check lige din mail, der var noget galt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester