Re: CGI, Cookie & Header
- From: Christian Winter <thepoet_nospam@xxxxxxxx>
- Date: Sat, 24 Dec 2005 11:00:43 +0100
Heiko Rompel schrieb:
Moin,
auch am Heiligenabend (bzw. -morgen) bin ich wieder hier.
In einem CGI gibt man ja als erstes einen http-header aus z.B. mit print "Content-type: text/html\n\n";
Wenn ich dann an einer Stelle im Script einen Cookie setzen will, darf aber ja noch kein Header aktiv sein.
Also habe ich ein print "</body></html>\n"; vor dem Erzeugen des Cookies mit print $q->header(-cookie=>$cookie); gesetzt.
Aber egal was ich auch anstelle,
der erste Header ist immer aktiv und das Cookie mir nur im Browser angezeigt und nicht
erstellt.
Wie erzwinge ich das schliessen des HTML-Dokuments?
Hi, und frohe Weihnachten!
Die header()-Funktion darfst Du nur einmal aufrufen. Die HTTP-Antwort besteht ja aus dem Header-Teil, einer Leerzeile und dem/den Body-Teil(en). header() gibt auch die Leerzeile zurück.
Also mußt Du _entweder_ die Programmlogik so strukturieren, daß beim Aufruf von header() alle Infos vorliegen, die Du brauchst, und dann print $q->header( -type => "text/html", -cookie=>$cookie, ... ); aufrufen kannst, _oder_ du sammelst erstmal alle Argumente in einem Array und alle Body-Inhalte in einem Skalar und gibst beides am Ende des Scripts aus, etwa wie
---------------------------------------------------------------- #!/usr/bin/perl
use strict; use warnings; use CGI;
my $q = new CGI;
my @header_args = ( -type => "text/html" ); # irgendwas ... my $body = "<HTML>\n<HEAD>\n<TITLE>irgendwas</TITLE>\n</HEAD>\n"; # irgendwas ... $body .= "<h1>Nur eine Ueberschrift</h1>\n"; # jetzt steht fest, was in das Cookie reinmuß my $cookie = "lalalalololo"; push @header_args, ( -cookie => $cookie );
$body .= "</BODY>\n</HTML>\n";
print $q->header( @header_args ); print $body; ----------------------------------------------------------------
Vor dem Aufruf von header() darf _keine_ Ausgabe jedweder Art erfolgt sein!
HTH -Christian .
- Follow-Ups:
- Re: CGI, Cookie & Header
- From: Heiko Rompel
- Re: CGI, Cookie & Header
- References:
- CGI, Cookie & Header
- From: Heiko Rompel
- CGI, Cookie & Header
- Prev by Date: CGI, Cookie & Header
- Next by Date: Re: CGI, Cookie & Header
- Previous by thread: CGI, Cookie & Header
- Next by thread: Re: CGI, Cookie & Header
- Index(es):
Relevant Pages
|