Weiterleitung mit Perl
Christof
- perl
Hallo,
ich bin gerade dabei ein kleines Script in Perl zu schreiben um damit Cookies auslesen zu können. Ist ein Cookie vorhanden, möchte ich den Benutzer auf eine bestimmte seite weiterleiten.
Nun habe ich in irgendeinem Script folgenden Ausdruck gefunden, der aber bei mir nicht funktioniert:
print "Content-type: text/html\n";
print "HTTP/1.0 302 Temporary Redirection\r\n" if $ENV{PERLXS} eq "PerlIS";
print ("Location: $return_page\n\n");
Sonst hab ich auch folgende möglichkeit probiert:
<meta http-equiv="refresh" content="5; URL=http://www.teamone.de/selfhtml/">
Aber das funktioniert mal wieder nicht im Netscape.
Wäre nett wenn ihr mir helfen könntet.
Danke
Christof
Hallo,
ich bin gerade dabei ein kleines Script in Perl zu schreiben um damit Cookies auslesen zu können. Ist ein Cookie vorhanden, möchte ich den Benutzer auf eine bestimmte seite weiterleiten.
Nun habe ich in irgendeinem Script folgenden Ausdruck gefunden, der aber bei mir nicht funktioniert:
print "Content-type: text/html\n";
print "HTTP/1.0 302 Temporary Redirection\r\n" if $ENV{PERLXS} eq "PerlIS";
print ("Location: $return_page\n\n");
Sonst hab ich auch folgende möglichkeit probiert:
<meta http-equiv="refresh" content="5; URL=http://www.teamone.de/selfhtml/">
Warum soll das in Netscape nicht funktionieren?
Bei mir tut es einwandfrei.
Man muss es allerdings in den Header eintragen wo es auch hingehoert.
Denn der IE hat die Unsitte es auch aus dem Body zu fischen.
Ciao Micha
Aber das funktioniert mal wieder nicht im Netscape.
Wäre nett wenn ihr mir helfen könntet.
Danke
Christof
Hi,
print "Content-type: text/html\n";
print "HTTP/1.0 302 Temporary Redirection\r\n" if $ENV{PERLXS} eq "PerlIS";
argh. Übrigens ist der Statuscode das _erste_, was im Response steht, nicht das zweite. Und Du möchtest die Erzeugung dieser Angabe lieber dem Server überlassen, indem Du ihm einen Status-Header schickst.
print ("Location: $return_page\n\n");
Wozu Du hier durch die Klammern einen Listenkontext forcierst, weißt Du wahrscheinlich als einziger. Du möchtest jedoch
perldoc CGI
lesen und dort spezielles Augenmerk auf die redirect-Methode lenken.
Sonst hab ich auch folgende möglichkeit probiert:
Unnötig, trafficlastig, zeitaufwändig, nicht Bookmark-freundlich, nicht Back-Taste-freundlich, verbraucht clientseitige Prozessorzeit, erzeugt ggf. unnötige HTTP-Roundtrips.
Aber das funktioniert mal wieder nicht im Netscape.
Irrtum.
Cheatah
Hallo,
print ("Location: $return_page\n\n");
Wozu Du hier durch die Klammern einen Listenkontext forcierst,
weißt Du wahrscheinlich als einziger. Du möchtest jedoch
perldoc CGI
lesen und dort spezielles Augenmerk auf die redirect-Methode lenken.
Das mit dem redirect wird auch nicht so ganz klappen, weil ich hab schon mal dasselbe Problem gehabt mit Cookie setzen und weiterleiten, und hast du, Cheatah, mir selbst gesagt das man nur einen Header setzen kann, das war mit print $query->header(-cookie=>$cookie);
wie man aber danach perlgemäß weiterleitet weis ich leider noch immer nicht.
Aha ich seh grad, daß er nur Cookies auslesen will, na gut dann wirds wahrscheinlich mit redirect klappen =)
Hi,
wie man aber danach perlgemäß weiterleitet weis ich leider noch immer nicht.
immer noch nicht? Hm. Du musst den Header (innerhalb des einzigen Aufrufs!) nur um eine Location-Angabe erweitern. Wie das geht, steht in perldoc CGI, auch wenn dort vielleicht nicht direkt etwas von "Location" steht.
Cheatah