Hi,
Nun soll das Script aber nach dem setzen des Cookies weiterleiten, was aber irgendwie nicht geht, da ich ja print $query->header(-cookie=>$cookie); habe und somit einen Header ausgebe, was mir wiederum Steine in den Weg wegen $query->redirect legt.
durch die Tür, linke Reihe, jeder Response nur ein Header. Dieser kann allerdings "Set-Cookie:" _und_ "Location:" enthalten, was der cookie()- bzw. redirect()-Methode von CGI.pm entspricht.
Erweitere also einfach die Parameter Deines header()-Aufrufs. perldoc CGI
sagt Dir mehr dazu.
Ich hab die Weiterleitung bis jetzt mit JavaScript gemacht, aber das kann es doch nicht sein ?
Nein, in der Tat... wenigstens ein <meta>-Refresh hätte es sein können :-)
Ich poste mal das (vielleicht etwas beschämende) Script.
Eigentlich ist es gar nicht schlecht; es ist im Gegenteil sogar ziemlich gut. Ich hab nur wenige Anmerkungen:
#!/usr/bin/perl -w
use strict; # Und dadurch musst Du schreiben:
$query = new CGI;
my $query = new CGI;
Mit strict vermeidest Du viele Fehler. Welche das sind sagt es Dir, wenn Du das Script einfach mal mit use strict;
versiehst und testweise ausführst.
$data = "b";
Hier reichen Singlequotes. Es ist nicht nötig, den Perl-Interpreter nach zu ersetzenden Variablen u.ä. suchen zu lassen.
open(STAT,">>vote.txt") or die "There is an error, please try again";
In den die
-Text solltest Du die Variable $! einbauen, um die Ursache des Fehlers mitzubekommen.
print "<script language="JavaScript">\n";
print "window.location.href="vote_umleitung.html"\n";
print "</script>\n</body>\n</html>\n";
Es ist sicher nicht schlecht, wenn Du Dich mit Here-Documents beschäftigst. Dadurch vermeidest Du die vielen " und \n, und der HTML-Code steht gut lesbar innerhalb des Perl-Codes.
Cheatah