Objekt / Session Fehler

Prophet05

Erfahrenes Mitglied
Fatal error: Cannot use object of type User as array in E:\Server\website2\include\class\class.user.php on line 479

Lautet die Fehlermeldung.

Auf dieser Zeile ist folgendes:
Code:
public function LoadFromSession()
 {
    $this->name = $_SESSION['user']['name']; // Zeile 479
    $this->passwort = $_SESSION['user']['passwort'];
    $this->email = $_SESSION['user']['email'];
 }
(Das ganze ist in einem Objekt)

Warum kommt dieser Fehler? Wie kann ich ihn beheben?

mfg Prophet05
 
Das verstehe ich nicht. Beim saven ist das gganze aber ein Array...
Code:
public function SaveToSession()
   {
      $_SESSION['user'] = Array();
      $_SESSION['user']['name'] = $this->name;
      $_SESSION['user']['passwort'] = $this->passwort;
      $_SESSION['user']['email'] = $this->email;
   }

EDIT: Deine Variante Funktioniert aber. Das ganze verstehe ich nicht. Wie kann ich es als Array abspeichern und nachher als Objekt darauf zugreifen.
 
Zuletzt bearbeitet:
Eigentlich müsste es als Array funktionieren. Einzige Erklärung die mir da einfällt: Du speicherst irgendwo an anderer Stelle ein Objekt in $_SESSION['user'].

Um sicherzustellen, das du hier keine Altlasten in der Session mitschleppst, solltest du das so machen:
PHP:
public function SaveToSession()
   {
      unset($_SESSION['user']);
      $_SESSION['user'] = array();
      $_SESSION['user']['name'] = $this->name;
      $_SESSION['user']['passwort'] = $this->passwort;
      $_SESSION['user']['email'] = $this->email;
   }

Damit (mit unset()) kannst du sicherstellen, dass der Eintrag 'user' aus der Session entfernt ist, bevor du die Zuweisung vornimmst.

Gruß Marian
 
Jetzt Funktioniert es auch mit der Array variante, Danke. ICh habe aber keine ahnung was für altlasten da drin sein sollten...
 
Zurück