bjb: serialize/unserialize

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

  1. 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

    1. 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

      1. 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

        --
        RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
        Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
        1. 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

          1. 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