Instanzen von Klassen in $_SESSION["bla"] speichern ...



  • Instanzen von Klassen unterscheiden sich hier in gewissem Sinne von normal Variablen, aber ich finde nirgens eine Erklärung dafür. Wie kann ich nun einen Instanz einer selbst geschriebenen Klasse in dem assoziativen Array $_SESSION speichern, so dass ich sie nachher wieder verwenden kann? Ohne irgendwas kommt immer die Fehlermeldung:

    Fatal error: Unknown(): The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition <b>navigationitem</b> of the object you are trying to operate on was loaded _before_ the session was started in c:\programme\apache group\apache\htdocs\bla.php on line 22

    Danke schön im Voraus



  • ich denke

    $c=new DeineKlasse();
    session_register("c"); //<- nicht die Variable, sondern den namen übergeben
    

    sollte das gewünschte Ergebnis bringen...



  • Ich habe gemerkt, dass es auch ohne session_register und sowas funktioniert, wenn ich die files in der die KLassen codiert sind vor session_start include.

    <?php
      include("./a.php"); // << include hier vor session_start, dann gehts
      session_start();
    
      if(!isset($_SESSION["asdf"])) {
        $_SESSION["asdf"] = new Blo("ble", true);
      }
    
      echo "<html><head><title>blo</title></head><body><h1>";
    
      $_SESSION["asdf"]->addText("blu");
      $_SESSION["asdf"]->echoBlo();
    
      echo "</h1></body></html>";
    ?>
    

    Passt das so?


  • Mod

    jo.

    hat ja schon die Fehlermeldung so gesagt 😉

    session_register verwendet man heute nicht mehr.



  • also einfach nur noch

    session_start();
    $_SESSION["foo"]="bar";
    

    ?


  • Mod

    ja


Anmelden zum Antworten