Manyak Online: Wege der Argumentübergabe?

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

  1. Hallo,

    dass ich nicht gleich darauf gekommen bin:
    $ENV{'QUERY_STRING'} ist eine Lösung :-)

    Grüße,
    Manyak Online

  2. 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

    1. 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

  3. 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