Parameterübergabe per #exec cgi="/cgi-bin/counter.pl" ?
Felix Senn
Frage: Kann ich einer Server Side Include-Anweisung einen
oder mehrere Parameter übergeben und wenn ja, wie geht das?
ServerSideInclude Anweisung:
<!-- #exec cgi="/cgi-bin/counter.pl" -->
Bei dem Programmaufruf sollte noch ein Parameter übergeben werden.
Ziel ist es von mehreren Seiten das gleiche CGI-Programm zu starten. Die
Ausgabe soll sich jedoch je nach Seitentyp unterscheiden.
Weiteres Ziel:
Das CGI-Programm soll eine Datei auf dem Server öffnen und Informationen
auslesen. Da das Programm von mehreren Web-Seiten genutzt werden soll, wird
dem CGI-Programm eine Kennung übergeben, die es diesem ermöglicht eine Datei
zu öffnen und deren Inhalt dynamisch auf der HTML-Seite
darzustellen.
Kann jemand diese Frage beantworten?
Felix Senn
Hallo Felix,
ServerSideInclude Anweisung:
<!-- #exec cgi="/cgi-bin/counter.pl" -->
Bei dem Programmaufruf sollte noch ein Parameter übergeben werden.
Das counter.pl muss dazu die Zeile enthalten:
read(STDIN, $Daten, $ENV{'CONTENT_LENGTH'});
Dann steht im Skalar $Daten anschliessend das, was beim Aufruf hinter dem Fragezeichen uebergeben wurde. Beispiel:
<!--#exec cgi="/cgi-bin/counter.pl?Typ=4"-->
Dann steht in $Daten: "Typ=4".
Das musst Du dann natuerlich auseinanderdroeseln, um es weiterzuverarbeiten.
Noch ein Hinweis: bei den Uebergabedaten hinter dem Fragezeichen empfiehlt es sich, die Regeln des Mime-Types www-form-url-encoded zu verwenden.
Viele Gruesse
Stefan Muenz