& Cookie setzen funktioniert nicht (habe orginal Script)
Steffen Wawryniuk
- cgi
0 klaus
Hi,
ich habe mir aus dem Archive die BESTEN Dinge rausgesucht und ein Script herausgesucht:
sub register {
print "Content-type: text/html\n\n";
if(defined ($id=cookie(-name => 'ID'))) { # Cookie gesetzt!
print header();
print b("Nummer $id! Was für eine Freude!");
}
else { $id = unpack ('H*', pack('Nc', time, $$ % 0xff));
$cookie = cookie('-name' => 'ID',
'-value' => $id,
'-expiries' => '+1d',
'-domain' => '.arenaxtreme.de');
print header('-cookie' => $cookie);
print b("Willkommen bei der Cookie-Mafia, Nummer $id!");
}
}
Das Script erkennt IMMER das KEIN Cookie da is, und setzt IMMER einen neuen...
DER wird ABER nicht GESPEICHERT .... und somit durchläuft das Script IMMER die ELSE Routine ohne den Cookie NUN WIRKLICH zu setzen ..
DANKE FÜR EURE Hilfe
Hallo Steffen,
print "Content-type: text/html\n\n";
Ab hier ist's vorbei mit Cookies. Laß diese Zeile weg und es flutsch.
Das Cookie wird nämlich im HTTP-Response-HEader Gesetzt und die obige Zeile gibt eigentlich schon einen aus, und wie heißts so schon bei highlander:
'Es kann nur einen geben'.
Grüße
Klaus
print "Content-type: text/html\n\n";
Ab hier ist's vorbei mit Cookies. Laß diese Zeile weg und es flutsch.
Das Cookie wird nämlich im HTTP-Response-HEader Gesetzt und die obige Zeile gibt eigentlich schon einen aus
hehe THX STIMMT !!!
war MEIN Fehler ....
naja toll dann arbeite ich jetzt mal weiter...
wenn probleme gibt... bin ich wieder da *g*
» > print "Content-type: text/html\n\n";
Ab hier ist's vorbei mit Cookies. Laß diese Zeile weg und es flutsch.
Das Cookie wird nämlich im HTTP-Response-HEader Gesetzt und die obige Zeile gibt eigentlich schon einen aus
hehe zu früh gefreut... du hast ZWAR recht...
Aber GESPEICHERT werden die Cookies trozdem nicht, NUR virtuell, schließe ich den Browser und starte ihn dann neu erkennt er den Cookie nicht und vergiebt einen NEUEN bei Refresh es er dann also da, sobald ich den Browser schließe aber weg...
» > print "Content-type: text/html\n\n";
Ab hier ist's vorbei mit Cookies. Laß diese Zeile weg und es flutsch.
Das Cookie wird nämlich im HTTP-Response-HEader Gesetzt und die obige Zeile gibt eigentlich schon einen aushehe zu früh gefreut... du hast ZWAR recht...
Aber GESPEICHERT werden die Cookies trozdem nicht, NUR virtuell, schließe ich den Browser und starte ihn dann neu erkennt er den Cookie nicht und vergiebt einen NEUEN bei Refresh es er dann also da, sobald ich den Browser schließe aber weg...
Hallo,
Jaja der Tippteufel hat wieder zugeschlagen
'-expiries' => '+1d',
müßte
'-expires' => '+1d',
heißen
Bis dann
Klaus
Jaja der Tippteufel hat wieder zugeschlagen
'-expiries' => '+1d',
müßte
»» '-expires' => '+1d',
heißen
okay danke es läuft !!!
Habe jetzt aber noch ne Frage...
Ist es mit dem GLEICHEN script möglich mehrere IDs (Infomortionen) zu schreiben UND auszulesen
if(defined ($id=cookie(-name => 'ID'))) { # Cookie gesetzt!
print header();
print b("Nummer $id! Was für eine Freude!");
}
else { $id = unpack ('H*', pack('Nc', time, $$ % 0xff));
$cookie = cookie('-name' => 'ID',
'-value' => $id,
'-name' => 'UserName',
'-value' => $username,
'-expires' => '+1y',
'-domain' => '.arenaxtreme.de');
print header('-cookie' => $cookie);
print b("Willkommen bei der Cookie-Mafia, Nummer $id! <br> UserName : $username");
}
also so das ich nicht nur 'ID' habe, sondern auch 'Name' usw.
???
Wie schreibe & lese ich dann soetwas ???
dnake nochmal für die hilfe...
Hi,
Auszug aus der Dioku von CGI.pm:
To create multiple cookies, give header() an array reference:
$cookie1 = $query->cookie(-name=>'riddle_name',
-value=>"The Sphynx's Question");
$cookie2 = $query->cookie(-name=>'answers',
-value=>%answers);
print $query->header(-cookie=>[$cookie1,$cookie2]);
Das ist wohl, was Du meinst.
Klaus