cgi->redirect() funktioniert nicht
Thomas
- perl
Hallo,
ich habe einen Apache-Webserver in dem ein Perl-Skript Werte von einer anderen Seite entgegennimmt. Nachdem die Werte verarbeitet worden sind, soll der Benutzer wieder auf die Startseite geleitet werden.
Also so:
$cgi = CGI -> new();
..
irgendwas
..
print $cgi->redirect('index.pl');
Die Funktion wird auch ausgeführt, nur in meinem Browser bekomme ich dann nur:
Status: 302 Moved Location: index.pl
Die Meldung wird wohl vom Apache kommen. Ich weiß aber nicht, wo denn der Fehler liegt dass ich nicht wieder auf diese Seite komme (diese liegt auch im gleichen Verzeichnis).
Vom Prinzip her ist das ja so wie hier: http://de.selfhtml.org/perl/module/cgi.htm#redirects beschrieben umgesetzt.
Jemand einen Hinweis?
Danke und Gruß
Thomas
hallo,
Also so:
$cgi = CGI -> new();
Bist du sicher, daß du das wirklich so machen möchtest? Oder nicht vielleicht doch in der Form, wie du es in der von dir angegebenen SELFHTML-Seite findest:
my $cgi = new CGI;
Grüße aus Berlin
Christoph S.
Bist du sicher, daß du das wirklich so machen möchtest?
Oder nicht vielleicht doch in der Form, wie du es in der von dir angegebenen SELFHTML-Seite findest:
my $cgi = new CGI;
Meine Version habe ich aus einem Buch (gut, ist für Anfänger).
Laut diesem Thread hier:
http://forum.de.selfhtml.org/archiv/2006/12/t142477/
gibt es wohl auch keinen Unterschied dazwischen (das "my" mal außenvor gelassen), oder doch?
$cgi = CGI -> new();
Bist du sicher, daß du das wirklich so machen möchtest? Oder nicht vielleicht doch in der Form, wie du es in der von dir angegebenen SELFHTML-Seite findest:
my $cgi = new CGI;
ausser dem my ist darin kein Unterschied. Du kannst in Perl das sowohl als auch schreiben.
Dass erste ist sogar IMHO näher an der "Realität", da man die Funktion new des Pakets CGI aufruft und nicht wie in manchen Programmiersprachen ein Objekt CGI neu erzeugt (auch wenn es auf das selbe hinausläuft, aber new ist kein Schlüsselwort in Perl).
Struppi.
Dass erste ist sogar IMHO näher an der "Realität", ...
Etwas vielleicht auch Dich Interessierendes zur Realität der Linken bzw. Anarchisten hier:
http://debatte.welt.de/kommentare/20445/1+mai+fr+eine+linke+die+diesen+namen+verdient
ausser dem my ist darin kein Unterschied.
Oh doch, da ist ein gravierender Unterschied.
Du kannst in Perl das sowohl als auch schreiben.
Soweit richtig, aber:
Dass erste ist sogar IMHO näher an der "Realität", da man die Funktion new des Pakets CGI aufruft und nicht wie in manchen Programmiersprachen ein Objekt CGI neu erzeugt (auch wenn es auf das selbe hinausläuft, aber new ist kein Schlüsselwort in Perl).
Lies mal den von mir verlinkten Teil von perlobj :)
Siechfred
Lies mal den von mir verlinkten Teil von perlobj :)
Stimmt, eigentlich auch logisch.
Struppi.
$cgi = CGI -> new();
Bist du sicher, daß du das wirklich so machen möchtest?
Wenn er noch Anfänger ist, sollte er es so machen.
my $cgi = new CGI;
Extra für dich und Struppi rausgekramt: Indirect Object Syntax. Das sollte Begründung genug sein.
Siechfred
Hallo!
Die Funktion wird auch ausgeführt, nur in meinem Browser bekomme ich dann nur:
Status: 302 Moved Location: index.pl
Hast du evtl. schon vorher irgendwo ein
print $cgi->header()
stehen? Das muss dann raus, da $cgi->redirect()
ja einen Weiterleitungsheader ausgibt, also den $cgi->header()
quasi 'ersetzt'.
Grüße, Skrilax
Hast du evtl. schon vorher irgendwo ein
print $cgi->header()
stehen? Das muss dann raus, da$cgi->redirect()
ja einen Weiterleitungsheader ausgibt, also den$cgi->header()
quasi 'ersetzt'.
Danke,
das war der Fehler!
Gruß
Thomas