TomC: Cookies speichern und lesen

Eine Frage, die in Abwandlungen schon öfter, so aber noch nicht gestellt wurde:

Kann ich mit Perl einen Cookie schreiben im gleichen Atemzug wieder auslesen?
Bisher habe ich bei meinen Versuchen immer nur die Version des Cookies vor dem Speichern gesehen.

Geht mein Vorhaben prinzipiell nicht (da Cookies erst gesetzt werden, wenn der Haeder geschrieben wird und damit alles schon zu spät ist) oder mache ich einen logischen Fehler?

Hierzu das etwas abgewandelte Script aus SELFHTML:

#!C:/Programme/Apache Group/Apache2/Perl/bin/perl.exe -w

use strict;
use CGI;
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);

my $CTIME_String = localtime(time);
my $altCookie = $cgi->cookie(-name=>'letzter_Besuch');
my $neuCookie = $cgi->cookie(-name=>'letzter_Besuch',
                            -value=>$CTIME_String,
                            -expires=>'+3M',
                            -path=>'/');

print $cgi->header(-cookie=>$neuCookie);

nach meinem verstaendnis muesster der cookie jetzt

geschrieben und mit dem neuen wert abrufbar sein

print $cgi->start_html("Cookie-Test");
print $cgi->p("<b>Ihr letzter Besuchszeitpunkt dieser Seite war</b>: ", $altCookie || 'unbekannt');

$altCookie = $cgi->cookie(-name=>'letzter_Besuch');

print $cgi->p("<b>Als neuer Besuchszeitpunkt wurde gespeichert</b>: ", $CTIME_String);
print $cgi->p("<b>Neuer Wert des Cookies</b>: ", $altCookie);
print $cgi->end_html();

Wer kann mir sagen, wo mein Denkfehler ist?

Dank von TomC

  1. Hi,

    Kann ich mit Perl einen Cookie schreiben im gleichen Atemzug wieder auslesen?

    hat der Client den Cookie gesetzt und an den Server zurückgesendet, noch bevor er die Ausgabe des serverseitigen Scripts erhalten hat? Nein, vermutlich nicht :-)

    Bisher habe ich bei meinen Versuchen immer nur die Version des Cookies vor dem Speichern gesehen.

    Ja, das ist richtig. Client und Server sind zwei unabhängige Universen; sei Dir immer dessen bewusst, wo Du Dich zu welchem Zeitpunkt "befindest".

    Geht mein Vorhaben prinzipiell nicht (da Cookies erst gesetzt werden, wenn der Haeder geschrieben wird und damit alles schon zu spät ist)

    Präzise.

    Cheatah

    --
    X-Will-Answer-Email: No