Parameterübergabe per '?' funktioniert nicht
Guido Spichala
- perl
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
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.
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
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.
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
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
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!
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
Vieeeelen Dank :-)
Es funktioniert jetzt :-)
Aber auf den anderen Servern, verursacht das script imemrnoch einen 500er Error ... *rumprobier* :)
hi!
Aber auf den anderen Servern, verursacht das script imemrnoch einen 500er Error ... *rumprobier* :)
http://www.teamone.de/selfaktuell/artikel/schroepl03.htm
bye, Frank!