PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : cgi in c++


BlAcKdRaGoN
17.03.2002, 12:00
ich versuche krampfhaft ein simples cgi script in c++ zu schreiben
ich habe schon einige tuts gelesen und auch einige ausprobiert das problem ist entweder bekomme ich einen speicherzugriffsfehler
(warum ist mir schleierhaft da ich die beispiel cgis genommen habe und nur in den pfadangaben auf mein system zugeschnitten habe)

kann mir irgendjemand bitte ein beispiel cgi posten das sowohl input als auch output methoden zeigt ?

ich weiss zum beispiel nicht wie ich den input stream von dem html
verarbeiten soll und wozu ich die umgebungsvariablen benötige

in einem tutorial war angegeben das man die umgebungsvariable
CONTENT_LENGTH benötigt ich versuche sie damit auszulesen aber diese funktion gibt einfach nur (null) aus
das system mit dem ich arbeite ist linux




void daten_verarbeiten()
{
char *umgebung;
umgebung = getenv("CONTENT_LENGTH");
cout << umgebung << &quot;\n&quot;;
}
danke schonmal im vorraus


Jack
18.03.2002, 14:30
Hi, ich denke, da kann ich dir weiterhelfen.

1. Grundsätzliches:
Alles was du auf die Standardausgabe schreibst, wird an den Browser geschickt.
Wichtig: Du mußt dem Browser erst sagen, was er da empfängt:

printf(&quot;CONTENT-TYPE: text/html\n\n&quot;);

! Die beiden NewLines nicht vergessen !.
Dies ist die allererste Ausgabe, die dein CGI machen muß.

2. CONTENT_LENGTH
Diese Variable wird nur dann gesetzt, wenn du dein Formular mi method=&quot;post&quot; abschickst. Dann kannst du über CONTENT_LENGTH die Anzahl der Zeichen auf der Standardeingabe herausbekommen und liest dann genau diese Anzahl an Zeichen ein.
Schickst du dein Formular mit method=&quot;get&quot; ab, hast du diese Umgebungsvariable nicht, du hast auch die Formulardaten nicht auf der Standardeingabe, sondern erhältst sie durch auslesen der Umgebungsvariablen
QUERY_STRING. Wenn dein CGI auf beide Arten reagieren soll, mußt du eine weitere Umgebungsvariable auslesen. Da müsste ich aber mal nachschlagen.

Sinnvoll wäre es vielleicht auch, dir einfach mal alle Umgebungsvariablen ausgeben zu lassen, dann siehst du am besten, was es noch gibt ;)

Cya Jack

Alexander Weipprecht
24.03.2002, 11:55
http://www.projekt11.com/C/index.htm

unter C & CGI

Hoffe das hilft weiter.