Problem mit dem serialisieren eines Objekts

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit dem serialisieren eines Objekts

    Hi Leute!

    Ich hab folgendes Problem:
    Und zwar hab ich ein Objekt $foo, welches ich am Ende eines Scripts mit serialize(); in einen Bytestrom verwandle und dann in eine Sessionvariable $_SESSION['bar'] schreibe...

    Da ich nur ne index.php habe, in der dann alle Unterseiten included werden, hol ich mir das Objekt wieder aus der Session und wandle es mit unserialize(); wieder um...
    Dann mach ich ne Abfrage obs ein Objekt ist, wenn nicht, dann instanziere ich ein neues Objekt...

    Das ganze sieht ungefähr so aus:

    PHP-Code:
    <?php
    include('klasse.php');
    session_start();

    $foo unserialize($_SESSION['bar']);

    if(!
    is_object($foo)) {
        
    $foo = new Klasse();
    }

    // Das restliche Script...

    $_SESSION['bar'] = serialize($foo);
    ?>
    Jetzt tritt aber anscheinend ein Problem bei serialize($foo); auf, denn wenn ich danach ein var_dump($_SESSION['bar']; mache, dann gibt er mir nur " string(2) "N;" " aus, und wenn ich dann var_dump(unserialize($_SESSION['bar']); mach, dann gibt er mir nur " NULL " aus..

    Problem liegt also definitiv nicht am Sessionmanagement, sondern an der Serialisation, nur hab ich keine Ahnung, was der Fehler ist!

    Könnt ihr mir da vllt. helfen?
    Achja, ich benutze PHP 5!

    gruß
    bones

  • #2
    PHP-Code:
    echo $_SESSION['bar']; 
    ergibt was?

    error_reporting() fehlt auch...

    Kommentar


    • #3
      Error-Reporting is sowieos immer auf E_ALL bei mir!

      echo $_SESSION['bar']; gibt " N; " aus...
      Also auch das gleiche wie var_dump...

      Achja, was ich net erwähnt hab, $foo, ist vor dem Serialisieren 100% ein Objekt, das hab ich auch schon nachgeprüft!

      Ich weiß echt net mehr weiter!
      Vor Allem: wo kommt dieses " N; " her?

      Kommentar


      • #4
        sorry, vardump hatte ich überlesen.

        was gibt serialize($foo); zurück=

        Kommentar


        • #5
          wie sieht denn var_dump($foo) und var_dump(serialize($foo)) aus?

          Kommentar


          • #6
            sorry, vardump hatte ich überlesen.

            was gibt serialize($foo); zurück?

            Kommentar


            • #7
              der Klassen-Code wäre (nur eventuell) hilfreich...

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                Re: Problem mit dem serialisieren eines Objekts

                Original geschrieben von bones
                Achja, ich benutze PHP 5!
                Dann verzichte aufs serialisieren.

                Kommentar


                • #9
                  Leute, ich bedanke mich bei allen, die mir helfen wollten, aber ich hab jetzt endlich (nach 2 Tagen^^) das Problem gelöst...
                  Ich hab einfach nen kleinen Fehler bei der Methode __sleep() gemacht, und schon hat das Serialisieren net gefuntzt...
                  Naja, trotzdem danke an alle, Thread kann wohl geschlossen werden!

                  Edit:
                  Original geschrieben von TobiaZ
                  Dann verzichte aufs serialisieren.
                  Schon klar, dass es bei PHP 5 net mehr nötig is, aber das is jetzt ja nur mal ne Testumgebung, die ich auf meinem Rechner hab, aber ich hab eben keinen Schimmer, ob ich, wenn ich das ganze online stelle auch PHP 5 zur Verfügung hab!

                  Kommentar


                  • #10
                    Original geschrieben von bones
                    Leute, ich bedanke mich bei allen, die mir helfen wollten, aber ich hab jetzt endlich (nach 2 Tagen^^) das Problem gelöst...
                    Ich hab einfach nen kleinen Fehler bei der Methode __sleep() gemacht, und schon hat das Serialisieren net gefuntzt...
                    Genau das hatte ich geahnt...

                    Schon klar, dass es bei PHP 5 net mehr nötig is, aber das is jetzt ja nur mal ne Testumgebung, die ich auf meinem Rechner hab, aber ich hab eben keinen Schimmer, ob ich, wenn ich das ganze online stelle auch PHP 5 zur Verfügung hab!
                    die __sleep-Methode gibt es erst seit php-Version 5, das ist dir bewusst?!

                    und wenn dein Hoster dir kein php5 m. mysql5 anbietet, wechsel den Hoster ... das ist schon fast ein Grund für fristlose Kündigung

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar

                    Lädt...
                    X