Hallo
Ich möchte mir gern mit /bin/sh eigene CGI-Scripts für den FritzBox-Webserver schreiben. Dafür hab ich auch Anleitungen gefunden:
http://mailman.sil.at/pipermail/cd/2002-March/000076.html
http://rcswww.urz.tu-dresden.de/~petrick/help/cgi.html
Probleme machen allerdings POST-Aufrufe:
Jetzt habe ich das Problem, CONTENT_LENGTH Zeichen aus Stdin lesen zu müssen. Wie mache ich das am einfachsten. /dev/stdin existiert nicht, zumal ich das Auslesen auch schlecht beschänken könnte. Und um mir cgiparse (http://www-wireless.usenet-replayer.com/data/fido/ger/linux/25234.html) zu kompilieren bin ich zu blöd.
Ich möchte mir gern mit /bin/sh eigene CGI-Scripts für den FritzBox-Webserver schreiben. Dafür hab ich auch Anleitungen gefunden:
http://mailman.sil.at/pipermail/cd/2002-March/000076.html
http://rcswww.urz.tu-dresden.de/~petrick/help/cgi.html
Probleme machen allerdings POST-Aufrufe:
Der Server definiert einen Satz Environment Variablen und ruft dann das Programm auf. Die für einfache Anwendungen wichtigsten Variablen sind:
REQUEST_METHOD
Bei Methode GET werden alle Argumente in der Variablen QUERY_STRING übergeben. POST übergibt die Daten an der Standardeingabe.
CONTENT_LENGTH
Nur bei POST, Länge des Datenstroms in Byte.
Die übergebenen Parameter sind möglicherweise URL-encoded und werden in Abhängigkeit von der Methode POST oder GET entweder in der Variablen QUERY_STRING oder über die Standardeingabe übergeben. Der einfachste Weg damit fertig zu werden ist das Hilfsprogramm cgiparse. Der Aufruf cgiparse -form setzt die Variablen FORM_<name>.
Jetzt habe ich das Problem, CONTENT_LENGTH Zeichen aus Stdin lesen zu müssen. Wie mache ich das am einfachsten. /dev/stdin existiert nicht, zumal ich das Auslesen auch schlecht beschänken könnte. Und um mir cgiparse (http://www-wireless.usenet-replayer.com/data/fido/ger/linux/25234.html) zu kompilieren bin ich zu blöd.