Stefan Priebe: Script unter TELNET starten... mit Parameter übergabe...

Hallo!

Ich habe folgendes Problem:

Wenn ich unter Telnet folgendes eingebe:
perl script.pl?num=2134&datei=213.txt

dann bekomme ich nur ein Datei not found... obwohl es das script.pl gibt. Ich kann es nur ohne Parameter ausführen wie geht es mit ?

Stefan

  1. Auch hallo!

    Wenn ich unter Telnet folgendes eingebe:
    perl script.pl?num=2134&datei=213.txt
    dann bekomme ich nur ein Datei not found...

    Klingt ziemlich logisch, da Du dort wohl kein Script namens "script.pl?num=2134&datei=213.txt" herumliegen hast, gell?

    Du musst genau die Schritte nachvollziehen, die auch der Webserver tut, wenn er ein CGI-Script aufruft. Unter der Bourne-Shell (sh) sollte es ungefaehr so gehen:

    QUERY_STRING='num=2134&datei=213.txt'
        export QUERY_STRING
        ./script.pl

    Calocybe

    1. Das nützt mir bloß nichts, ...

      da ich mit CronJobs arbeite und das ganze eine Befehlszeile sein muß, die der Server ausführen soll...

      Stefan

      1. Das nützt mir bloß nichts, ...

        da ich mit CronJobs arbeite und das ganze eine Befehlszeile sein muß, die der Server ausführen soll...

        Versuch doch mal:

        echo "Name=Donald Duck" ./test.pl

        Sollte zumindest bei Programmen funktionieren, die CGI.pm verwenden.

      2. Hi!

        da ich mit CronJobs arbeite und das ganze eine Befehlszeile sein muß, die der Server ausführen soll...

        Willst Du das Script ueberhaupt nicht als CGI-Script verwenden? Dann uebergib doch einfach die Parameter ganz normal auf der Kommandozeile:
            script.pl num=2134 datei=213.txt
        Dann steht in $ARGV[0] "num=2134" und $ARGV[1] enthaelt "datei=213.txt".

        Erik: Die echo-Ausgabe in das Script pipen heisst nichts anderes, als die POST-Methode zu simulieren. Ist auch ne Loesung, falls das Scipt POST-faehig ist.

        Calocybe

      3. da ich mit CronJobs arbeite und das ganze eine Befehlszeile sein muß, die der Server ausführen soll...

        (export QUERY_STRING='num=2134&datei=213.txt'; ./script.pl)

        • das ist *eine* Zeile.

        Oder Calocybes Lösung in ein Shell-Skript schreiben und dieses via cron ausführen.