Remo Laubacher: CGIs mit GNU C

ich habe ein kleines problem beim schreiben von cgis mit gnu c (wahrscheinlich mit allen c compilern - aber ich verwende halt nur gnu)

Das CGI soll alle Werte (mit GET nicht mit POST übergeben) anzeigen. Diese sind ja in der Variable "char* argv[]" gespeichert. Eine neue "zeile" kann man bei GET mit "&" erstelle (cgi.exe?Zeile1&Zeile2). Dies funktioniert auch soweit ganz gut.

Wenn ich jetzt aber die Daten eines Formulares auswerten will wird das GET ja immer so erstellt: Name1=Wert1&Name2=Wert2... usw. Die Variable argv ist aber immer leer sobald ich ein "=" in der parameter übergabe habe - was ja immer so ist wenn ich ein formular verschicke... Irgendwelche Ideen? (Ich will das CGI nicht per JavaScript aufrufen)

Danke
Remo

  1. Hi,

    Das CGI soll alle Werte (mit GET nicht mit POST übergeben) anzeigen. Diese sind ja in der Variable "char* argv[]" gespeichert.

    Nein, wie kommst du darauf? GET's stehen in der Environment Variable "QUERY_STRING" und POST's werden auf den stdin geschrieben.
    Siehe dazu auch <../../tgbf.htm>

    HTH,
    Gero

    1. Hi,

      Das CGI soll alle Werte (mit GET nicht mit POST übergeben) anzeigen. Diese sind ja in der Variable "char* argv[]" gespeichert.

      Nein, wie kommst du darauf? GET's stehen in der Environment Variable "QUERY_STRING" und POST's werden auf den stdin geschrieben.
      Siehe dazu auch <../../tgbf.htm>

      HTH,
      Gero

      Danke für die Infos.

      Wie ich darauf komme?? Überprüfs doch einfach mal. Die Übergabe per GET kommt fast gleich einer Parameter Übergabe in der Kommandozeile.

      Ich habe aber nicht daran gedacht dass man es auch über "QUERY_STRING" holen könnte - nur wie kann ich dann platformunabhängig programmieren? Ich schreibe alle C-CGIs unter Windows, am Ende aber laufen fast alle unter Linux...

      1. Hi!

        Wie ich darauf komme?? Überprüfs doch einfach mal. Die Übergabe per GET kommt fast gleich einer Parameter Übergabe in der Kommandozeile.

        Sieht zwar aehnlich aus, sind aber zwei ganz verschiedene Sachen.

        Ich habe aber nicht daran gedacht dass man es auch über "QUERY_STRING" holen könnte

        Auch? Du kannst es *nur* ueber QUERY_STRING holen.

        • nur wie kann ich dann platformunabhängig programmieren? Ich schreibe alle C-CGIs unter Windows, am Ende aber laufen fast alle unter Linux...

        Wo ist das Problem? Die CGI-Argumente stehen *immer* im QueryString (solange GET verwendet wird). Und die Environment wird *immer* ueber den dritten Parameter an main() uebergeben (char ** env).

        So long