Array mit serialize in Cookie speichern
Flo
- php
Hi!
Versuche gerade ein Array in einen Cookie zu quetschen.
Dazu habe ich die Funktion serialize benutzt. Klappt ganz gut auch das Speichern im Cookie...
nur die Rükcwandlung in ein Array klappt gar nicht :-(
$wert = serialize($_POST['kurs']);
setcookie("kurse", $wert);
if (isset($_COOKIE['kurse'])) {
echo "Cookie gefunden!<br>";
$test=array();
$test=unserialize($_COOKIE['kurse']);
print_r ($test);
echo "Ausgabe fertig!";
} else {
echo "Cookie noch nicht gesetzt oder nicht vom Browser akzeptiert";
}
Außer den Echo-Ausgaben liefert print_r nichts zurück... hatte es vorher auch schon mit foreach probiert, ging aber auch nicht...
Was is falsch?
Gruß Flo
Hallo
Hast du auch bedacht, dass du das Cookie erst beim nächsten Skriptaufruf abfragen kannst?
Liebe Grüße
Manko10
Hi!
Ja hab ich shcon beachtet. Deswegen frage ich ja auch erstmal mit isset ab, ob der Cookie da ist!!
Gruß Flo
PS: Als Fehlerausgabe kommt immer noch:
Notice: unserialize() [function.unserialize]: Error at offset 9 of 56 bytes in /users/cotta/www/vp/abfrage.php on line 14
Line 14 ist hier die zeile, wo unserialize aufgerufen wird!
Hi,
Als Fehlerausgabe kommt immer noch:
Notice: unserialize() [function.unserialize]: Error at offset 9 of 56 bytes in [...]
Und was machma da als halbwegs intelligenter Mensch?
Riiichtig, 'ne Kontrollausgabe, um uns man anzuschauen, auf was wir da eigentlich gerade unserialize anwenden - und ob das auch dem entspricht, was wir erwartet haben. Also ...?
(Ich tippe mal wieder auf magic quotes als Fehlerquelle.)
MfG ChrisB
Hello,
$wert = serialize($_POST['kurs']);
setcookie("kurse", $wert);
Was is falsch?
Das Encoding für das Cookie vielleicht.
http://wp.netscape.com/newsref/std/cookie_spec.html
Cookies werden im HTTP-Header gesendet und müssen daher auch passened codiert werden.
Ob PHP das automatisch macht, konnte ich nicht erkennen.
Ein harzliches Glückauf
Tom vom Berg
Hi,
Cookies werden im HTTP-Header gesendet und müssen daher auch passened codiert werden.
Ob PHP das automatisch macht, konnte ich nicht erkennen.
http://www.php.net/manual/en/function.setcookie.php:
Note that the value portion of the cookie will automatically be urlencoded when you send the cookie, and when it is received, it is automatically decoded and assigned to a variable by the same name as the cookie name. If you don't want this, you can use setrawcookie() instead if you are using PHP 5.
(Das bezieht sich aber wohl wirklich nur auf den value, und nicht auf name.)
MfG ChrisB
Hello,
Cookies werden im HTTP-Header gesendet und müssen daher auch passened codiert werden.
Ob PHP das automatisch macht, konnte ich nicht erkennen.http://www.php.net/manual/en/function.setcookie.php:
Note that the value portion of the cookie will automatically be urlencoded when you send the cookie, and when it is received, it is automatically decoded and assigned to a variable by the same name as the cookie name. If you don't want this, you can use setrawcookie() instead if you are using PHP 5.
(Das bezieht sich aber wohl wirklich nur auf den value, und nicht auf name.)
Das könnte aber dann schon eine Ursache für die Probleme des OP darstellen.
Und ob wirklich z.B. die Zeilenumbrüche und Sonderzeichen im Value, die durch Serialisierung beliebiger Inhalte vorliegen könnten, auch urlencoded werden?
Ein harzliches Glückauf
Tom vom Berg