serialize/unserialize
bjb
- php
0 wahsaga0 bjb
hallo
ich möchte einen array mittels cookie weitergeben
dafür verwende ich serialize() und schreibe den entstandenen wert in den cookie
wenn ih aber unserialize() anwende erhalte ich eine boolean-variable mit dem wert false
was soll das??
bsp:
$cookie=Array('USER'=>$name,'PASSWORD'=>md5($password));
setcookie('login',serialize($cookie));
$cookie=unserialize($_COOKIE['login']);
echo var_dump($cookie); ==>bool(false)
der cookie wird auch gesetzt, der inhalt sieht auch irgendwie richtig aus also fällt mein verdacht auf das unserialize()
kann mir jemand helfen??
gruß
bjb
hi,
$cookie=Array('USER'=>$name,'PASSWORD'=>md5($password));
setcookie('login',serialize($cookie));$cookie=unserialize($_COOKIE['login']);
echo var_dump($cookie); ==>bool(false)der cookie wird auch gesetzt, der inhalt sieht auch irgendwie richtig aus also fällt mein verdacht auf das unserialize()
sehe ich das richtig, dass du den cookie noch auf der selben seite, die ihn gerade eben erst gesetzt hat, wieder auszulesen versuchst?
das geht nicht.
für die übertragung des cookies vom browser zurück an den server ist ein neuer request notwendig.
(das würde false als ergebnis von unserialize() auch gut erklären, weil $_COOKIE['login'] leer ist gibt es nichts zum umwandeln.)
gruss,
wahsaga
hallo
sehe ich das richtig, dass du den cookie noch auf der selben seite, die ihn gerade eben erst gesetzt hat, wieder auszulesen versuchst?
nein, mein fehler (siehe unten)
das geht nicht.
das ist mir auch klar
für die übertragung des cookies vom browser zurück an den server ist ein neuer request notwendig.
ja
in 'echt' gibts noch ein kleines 'if':
if (!isset($_COOKIE['login'])){
$cookie=Array('USER'=>$name,'PASSWORD'=>md5($password));
setcookie('login',serialize($cookie));}
else{
$cookie=unserialize($_COOKIE['login']);
echo var_dump($cookie);} //==>bool(false)
klar??
gruß
bjb
Halihallo bjb
in 'echt' gibts noch ein kleines 'if':
if (!isset($_COOKIE['login'])){
$cookie=Array('USER'=>$name,'PASSWORD'=>md5($password));
setcookie('login',serialize($cookie));}
else{
$cookie=unserialize($_COOKIE['login']);
echo var_dump($cookie);} //==>bool(false)
Lies die Kommentare in http://www.php.net/serialize.
Du musst die Daten ggf. kodieren, falls PHP dies nicht selber macht, ansonsten gibt's
Datenverlust oder -müll und unserialize quittiert mit bool(false).
Viele Grüsse
Philipp
hallo
Lies die Kommentare in http://www.php.net/serialize.
Du musst die Daten ggf. kodieren, falls PHP dies nicht selber macht, ansonsten gibt's
Datenverlust oder -müll und unserialize quittiert mit bool(false).
ok danke
mit urlencode(serialize())bzw. urldecode(unserialize()) geht's
danke und
gruß
bjb
Du musst die Daten ggf. kodieren, falls PHP dies nicht selber macht, ansonsten gibt's
Datenverlust oder -müll und unserialize quittiert mit bool(false).ok danke
mit urlencode(serialize())bzw. urldecode(unserialize()) geht's
Mist, zu spät.. ;)
Gruß,
soenk.e