Wege der Argumentübergabe?
Manyak Online
- cgi
Hallo,
ich habe ein Perlprogramm geschrieben, das mit mein Dateisystem rekursiv traversiert.
Das Programm habe ich per SSI in eingebunden:
<!--#exec cgi="/cgi-bin/dateisystem.pl"-->
Nun wird der Folder ab dem die Traversierung starten soll im Programm selbst festgelegt.
Gibt es eine Möglichkeit dem Programm einen Ordner als Argument mitzugeben? Wenn ja, erhalte ich diesen dann im Programm per "shift"?
Gruß,
Manyak Online
Hallo,
dass ich nicht gleich darauf gekommen bin:
$ENV{'QUERY_STRING'} ist eine Lösung :-)
Grüße,
Manyak Online
hi,
wenn ich das richtig verstanden habe möchtest du von der Page in der du per SSI dein Script aufrufst den Namen des Ordners an das Script übergeben. richtig?
Wenn ja, dann kannst du nicht <!--#exec cgi="/cgi-bin/dateisystem.pl"--> verwenden da damit keine Parameter übergeben werden können. Du mußt sondern <!--# include virtual"/cgi-bin/dateisystem.pl"--> verwenden, dann kannst du hinten an die Url die Parameter ranhängen:
<!--# include virtual"/cgi-bin/dateisystem.pl?folder=webseiten"-->
Die Parameter die du hinten ranhängst müssen "Url"-Kodiert sein. Was das ist wird unter http://www.teamone.de/selfhtml/tgbf.htm#a2 erklärt. In diesem Beispiel wird die Variable folder mit dem Wert webseiten übergeben. Im Script findest du die Parameter die an die Url rangehängt werden in der Umgebungsvariablen $ENV{'QUERY_STRING'} diese mußt du zerlegen und gegebenenfalls decodieren. Wie das geht findest du z.B. unter http://www.teamone.de/selfhtml/tgcm.htm erklärt.
Greetz,
Jonas Harth
hi,
wenn ich das richtig verstanden habe möchtest du von der Page in der du per SSI dein Script aufrufst den Namen des Ordners an das Script übergeben. richtig?
Wenn ja, dann kannst du nicht <!--#exec cgi="/cgi-bin/dateisystem.pl"--> verwenden da damit keine Parameter übergeben werden können.
aber ich möchte doch das script ausführen und die Rückgabe in meine shtml-seite einbinden
es hat bei mir wirklich mit
<!--#exec cgi="/cgi-bin/dateisystem.pl$QueryStringText"-->
geklappt!
Du mußt sondern <!--# include virtual"/cgi-bin/dateisystem.pl"--> verwenden, dann kannst du hinten an die Url die Parameter ranhängen:
<!--# include virtual"/cgi-bin/dateisystem.pl?folder=webseiten"-->
Die Parameter die du hinten ranhängst müssen "Url"-Kodiert sein. Was das ist wird unter http://www.teamone.de/selfhtml/tgbf.htm#a2 erklärt. In diesem Beispiel wird die Variable folder mit dem Wert webseiten übergeben. Im Script findest du die Parameter die an die Url rangehängt werden in der Umgebungsvariablen $ENV{'QUERY_STRING'} diese mußt du zerlegen und gegebenenfalls decodieren. Wie das geht findest du z.B. unter http://www.teamone.de/selfhtml/tgcm.htm erklärt.
Greetz,
Jonas Harth
Hallo,
Nun wird der Folder ab dem die Traversierung starten soll im Programm selbst festgelegt.
Gibt es eine Möglichkeit dem Programm einen Ordner als Argument mitzugeben? Wenn ja, erhalte ich diesen dann im Programm per "shift"?
Ja, mit Hilfe eines Query-Strings (z.B. ?ordner), der dann in der
Umgebungsvariable $ENV{QUERY_STRING} verfügbar ist.
Das funktioniert allerdings nur mit <!--#include virtual="">.
Gruß Kai
Gruß,
Manyak Online