SimpleXML Objekt in $_SESSION speichern

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

  • SimpleXML Objekt in $_SESSION speichern

    Hey Leute
    Hm ich bin da auf ein Problehm in meinem Script gestossen und zwar öffne ich mit den simplexml befehlen ein XML dokument und lese dort diverse werte aus diese Werte würde ich nun gerne mit einer Session bereit stellen
    jedoch funktioniert das os nicht wirklich ich habe heraus gefunden das man eine Objektvariabel nicht ohne weiteres in eine Sessionspeichern kann.

    PHP-Code:
    session_start();
    $Player_File simplexml_load_file('Player.xml');
    $_SESSION['UID'] =  $Player_File->UID

  • #2
    serialize(), unserialize()?

    Allerdings weiß ich nicht ob das so eine gute Idee ist. Gib doch lieber nur die Werte mit die du wirklich brauchst...

    Kommentar


    • #3
      Hmmm ja das würde ich ja gerne machen aber wie ????
      ich verstehe nicht wie. Kann mir jemand ein kurzes code bespiel schreiben damit ich das verstehen kann ???

      DANKE

      Kommentar


      • #4
        mach erst mal

        PHP-Code:
        $Player_File simplexml_load_file('Player.xml');

        print_r($Player_File); 
        Was kommt da raus ?
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          Allso da kommt folgendes dabei heraus:



          PHP-Code:
          SimpleXMLElement Object ( [Active] => Yes 
          [UID] => 39d52057a36367f2338b58e164e0edaf 
          [Email] => [email]severin.holm@bluewin.ch[/email
          [
          Nickname] => chieftequila [Password] => 4ee8e975fe450c96f993eb85f9d50415 
          [Name] => SimpleXMLElement Object ( ) 
          [
          Vorname] => SimpleXMLElement Object ( ) 
          [
          Land] => SimpleXMLElement Object ( ) 
          [
          DOB] => SimpleXMLElement Object ( ) 
          [
          EvoLevel] => 
          [Score] => 
          [Allianz] => SimpleXMLElement Object ( ) 
          [
          LastLogin] => SimpleXMLElement Object ( ) 
          [
          LastIP] => SimpleXMLElement Object ( ) 
          [
          Galaxy] => SimpleXMLElement Object ( ) 
          [
          System] => SimpleXMLElement Object ( ) 
          [
          Planet] => SimpleXMLElement Object ( ) 
          [
          Island] => SimpleXMLElement Object ( ) 
          [
          PositionX] => SimpleXMLElement Object ( ) 
          [
          PositionY] => SimpleXMLElement Object ( ) 
          [
          OwnDesign] => SimpleXMLElement Object ( ) ) 

          Kommentar


          • #6
            Hmm dann sollte

            $_SESSION['UID'] = $Player_File->UID;

            Richtig sein
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Kommentar


            • #7
              Nein das geht eben nicht
              da ich eine Objektvariabel in die Session speichere.
              und das geht glaubs nicht weil der variabeltyp immer noch ein Objekt ist und kein string. wie kann ich allso ein simplexml Objekt in eine session schreiben ??

              greez chieftequila

              Kommentar


              • #8
                $_SESSION['foo'] = serialize($object_bar);

                Kommentar


                • #9
                  DANKE
                  so ist das mit dem serialize gemeint :-P
                  öhm und wie verwende ich das unserialize ???

                  Ich werds gleich ausproblieren DANKE

                  gruss cheiftequila

                  Kommentar


                  • #10
                    VOOLL geil entlich mal jemand der mir weiter hilft geil es funzt :-P

                    JJJEEEEEHHHAAAAAA GEIL GEIL GEIL GEIL DANKE DANKE du hast so eben jemand extrem glücklich gemacht :-P GEIIIIL

                    DANKE GREEZ CHIEF
                    PS: ach so wen du lust hast kanst du mir vileicht noch erklären was unserialize genau macht

                    Kommentar


                    • #11
                      Das Verständnis von unserialize() ergibt sich quasi von selbst, wenn man erstmal weiß, was serialize() macht.
                      serialize() wandelt die übergebene Variable in einen String um, der fast alle Informationen zu dieser Variable enthält (fast, weil z.B. der Scope nicht erfasst wird, würde aber auch keinen Sinn machen, denn i.d.R. wird die Variable in einem anderen Kontext wieder "ausgepackt"). Das klappt mit allen Variablen außer Resourcen, also mit den einfachen Datentypen, Arrays, Objekten, aber nicht mit Dateizeigern, Datenbankverbindungen und dergleichen.

                      Tja und unserialize() macht diesen Vorgang einfach rückgängig, d.h. es erzeugt wieder das ursprüngliche Objekt aus dem String.

                      Führe folgenden Code aus und du wirst Erleuchtung finden:
                      PHP-Code:
                      <?php
                      // ein paar versch. Variablen erzeugen
                      $a 'text';
                      $b 1.23;
                      $c = array('foo''bar' => 'baz');
                      $d = (object) 'x';
                      // serialisiert ausgeben
                      var_dump(
                          
                      serialize($a),
                          
                      serialize($b),
                          
                      serialize($c),
                          
                      serialize($d)
                      );
                      // serialisieren, un-serialisieren und ausgeben
                      var_dump(
                          
                      unserialize(serialize($a)),
                          
                      unserialize(serialize($b)),
                          
                      unserialize(serialize($c)),
                          
                      unserialize(serialize($d))
                      );
                      ?>
                      Alles was ich oben sagte ist mehr oder weniger ungenau. Die Details findest du im PHP-Manual.

                      Kommentar


                      • #12
                        nur mal so am rande bemerkt:
                        serialize() und unserialize() kann man sich sparen, da das schon der session-mechanismus erledigt!

                        wenns ein objekt ist, muss nur vor session_start() die klassendefinition zur verfügung stehen.

                        Kommentar


                        • #13
                          Allso es funktioniert immer noch nicht :-)
                          so den ich ein Objekt serialize dann habe ich den ganzen objekt arm in einer session so. Wen ich jetzt eine seite weiter (nach redirect) diese Session auslese will ich aber nur den variabel inhalt und nicht den ganzen Objektarm haben unserialize geht nicht ach so und serialize und un serialize braucht es da die Simple XML Commands fester bestandteil von PHP5 sind und nicht per Include eingebunden werden.

                          Kommentar

                          Lädt...
                          X