Hi!
Bisher habe ich ein Formular, dass so aussieht:
<html><head></head>
<form action="http://mein.cgidir.de/test/refresh.cgi" method=post>
Gib die Url ein und ich erstelle Dir eine
Refreh Seite daraus
<input type=text name=textfeld value="http://www.DeineSeite.de" size=30 maxlength=40><p>
<input type=reset value="Zurücksetzen">
<input type=submit name=submit value="Abschicken">
</form></body></html>
Das File refresh.pl sieht so aus:
====
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "REFRESH 111; URL=$textfeld">
print "<html><head><title>test</title></head>\n";
print "</body></html>\n";
1;
Na gut, aber was meinst Du, was in der Variable $textfeld drinsteht? Nichts natuerlich, denn Du hast die Variable nie initialisiert, d.h. ihr einen Wert zugewiesen. Vermutlich denkst Du, dass der Inhalt Deines <INPUT NAME=textfeld> dortrein kopiert wird, aber wieso sollte das passieren?
Besser so:
#!/usr/local/perl/bin -w
use strict; # weist Dich auf viele Fehler hin, macht manches
# aber auch laestiger (ist einfach pingelig)
use CGI qw/:standard/; # das uebernimmt fuer Dich das Auswerten der
# mitgeschickten Daten
my $textfeld = param('textfeld'); # Hier passiert's ;-)
der Rest wie gehabt:
print "Content-type: text/html\n\n";
print "REFRESH 111; URL=$textfeld">
print "<html><head><title>test</title></head>\n";
print "</body></html>\n";
Leider klappt es nicht und der server bringt den Fehler 500.
Das weist aber auf ein anderes Problem hin. Obiger Code sollte jedenfalls keinen solchen Fehler bringen (liegt Perl auch wirklich in /usr/local/bin?). Michael hat hierfuer einen umfangreichen Artikel geschrieben, der auch eine Checkliste enthaelt, die Du durchgehen solltest: </selfaktuell/artikel/schroepl03.htm#a19>.
So long