Guido Spichala: Parameterübergabe per '?' funktioniert nicht

Hallo, danke fürs reinschaun :)

Also, da ich festgestellt habe, dass nach dem Hochladen des Scripts den Parameter übergeben wird habe ich mal ein kleines Script gechrieben:

------------------------------------------------
#!/usr/local/bin/perl

print "Content-type:text/html\n\n";
print "<body bgcolor=#000066 text=#E8E8E8>";
print "<font face=Arial,Helvetica size=-1>";
print "<b>Übergebener Parameter:</b><br><br>";
print $ARGV[0];
print "</font></body>";
exit;
------------------------------------------------

http://www.exp-network.de/obee/testargv.pl?TEST

Aber leider wird der Parameter "TEST" der per "?" übergeben werden soll, nicht angezeigt.

Ausserdem habe ich festgestellt, dass das Script auf anderen Servern ein 500er Error verursacht ...

Weiss einer von euch eine Lösung?

MFG, GTS

  1. http://www.exp-network.de/obee/testargv.pl?TEST

    Aber leider wird der Parameter "TEST" der per "?" übergeben werden soll, nicht angezeigt.

    Kann er auch nicht, weil er "leer" ist. Er muß mit einem Wert gefüllt sein, der entweder vom aufrufenden Dokument oder innerhalb des perl-scripts übergeben wird ;-)

    Christoph S.

    1. http://www.exp-network.de/obee/testargv.pl?TEST

      Aber leider wird der Parameter "TEST" der per "?" übergeben werden soll, nicht angezeigt.

      Kann er auch nicht, weil er "leer" ist. Er muß mit einem Wert gefüllt sein, der entweder vom aufrufenden Dokument oder innerhalb des perl-scripts übergeben wird ;-)

      Christoph S.

      Hmm wie meinste das?

      Nach dem Motto: testargv.pl?test=test
      Oda so?

      Funktioniert übrigens auch nicht.

      MFG, GTS

      1. Hmm wie meinste das?

        Nach dem Motto: testargv.pl?test=test
        Oda so?

        Nein. Bau dir eine HTML-Seite, und in einem Formular auf der Seite hast du einen button
        <input type=button value=hallo name=TEST>
        usw. Dann ist TEST ein Parameter, der vom script dargestellt werden kann (sehr stark verkürzte Aussage).

        Christoph S.

        1. Also, das Problem mit der Parameterübergabe ist jetzt gelöst (siehe oben).

          Aber nun verursacht das Script einen 500er Server-Error ...

          Der Quelltext ist jetzt dieser:

          -----------------------
          #!/usr/bin/perl

          print "Content-type:text/html\n\n";
          print "<body bgcolor=#000066 text=#E8E8E8>";
          print "<font face=Arial,Helvetica size=-1>";
          print "<b>Übergebener Parameter:</b><br><br>";
          print "$ENV{'QUERY_STRING'}";
          print "</font></body>";
          exit;
          -----------------------

          Dnd dmit dem Link.

          http://www.exp-network.de/obee/testargv.pl?TEST

          funktioniert es jetzt auch.

          Das Script liegt übrigens auf einem WinNT-Server, und ich hab auch WinNT .. aber wenn ich die Scripts nun auf einen Linux/Unix-Server lad, funktioniert das script wie gesagt nicht.

          Die Permissions sind auf 777 gesetzt, und der Perl-Pfad stimmt auch.

          MFG, GTS

          1. Also, das Problem mit der Parameterübergabe ist jetzt gelöst (siehe oben).

            Aber nun verursacht das Script einen 500er Server-Error ...

            Der Quelltext ist jetzt dieser:


            #!/usr/bin/perl

            print "Content-type:text/html\n\n";
            print "<body bgcolor=#000066 text=#E8E8E8>";
            print "<font face=Arial,Helvetica size=-1>";
            print "<b>Übergebener Parameter:</b>

            ";
            print "$ENV{'QUERY_STRING'}";
            print "</font></body>";
            exit;

            Dnd dmit dem Link.

            http://www.exp-network.de/obee/testargv.pl?TEST

            funktioniert es jetzt auch.

            Das Script liegt übrigens auf einem WinNT-Server, und ich hab auch WinNT .. aber wenn ich die Scripts nun auf einen Linux/Unix-Server lad, funktioniert das script wie gesagt nicht.

            Die Permissions sind auf 777 gesetzt, und der Perl-Pfad stimmt auch.

            MFG, GTS

            Ok, Problem gelöst ... musste es binär hochladen

            Danke für eure Hilfe :-)

            MFG, GTS

            1. hi!

              Die Permissions sind auf 777 gesetzt, und der Perl-Pfad stimmt auch.

              Die Zugriffsrechte auf 777 zu setzen ist so ziemlich das dümmste, was man machen kann. 755 wäre richtig.
              Außerdem möchtest du dich damit beschäftigen, was diese Zahlen eigentlich bedeuten.

              Ok, Problem gelöst ... musste es binär hochladen

              Auf einen Unix-Server? Irrtum. ASCII-Modus ist in diesem Fall immer der richtige Modus, da nur so die
              Zeilenumbrüche an Unix-Anforderungen angepasst werden - außer es liegt bereits vorher im richtigen
              Format vor, aber selbst dann kann die Übertragung im ASCII-Modus nicht schaden.

              bye, Frank!

  2. Hallo Guido,

    Also, da ich festgestellt habe, dass nach dem Hochladen des Scripts den Parameter übergeben
    wird habe ich mal ein kleines Script gechrieben:

    Ich weis nicht, was Du mit Deinen ersten Zeilen sagen willst :-¿

    [...]

    print "Content-type:text/html\n\n";

    [...]

    print $ARGV[0];

    [...]    ^..... Hier liegt der Hund begraben ;-)

    http://www.exp-network.de/obee/testargv.pl?TEST

    Wenn Du so Parameter übergeben willst, wirst Du mit @ARGV nichts erreichen, da darin nur die Parameter der Kommandozeile stehen :-).
    Über HTTP Get übertragenen Daten stehen in der Umgebungsvariablen $ENV{'QUERY_STRING'}
    Baue das in Dein Skript ein, und schon sollte der Parameter erscheinen (hoffentlich tut er das dann auch ;-)

    Gruß AlexBausW

    1. Vieeeelen Dank :-)

      Es funktioniert jetzt :-)

      Aber auf den anderen Servern, verursacht das script imemrnoch einen 500er Error ... *rumprobier* :)

      1. hi!

        Aber auf den anderen Servern, verursacht das script imemrnoch einen 500er Error ... *rumprobier* :)

        http://www.teamone.de/selfaktuell/artikel/schroepl03.htm

        bye, Frank!