luca: Variablen innerhalb eines Objekts in einer Session speichern

Beitrag lesen

Vielen Dank für deine Antwort Andreas!

Habe meinen Test-Code inzwischen auch auf das neue Session-Handling umgestellt.

Wie speichere ich denn die Variable "Test" des Objekts, genau das ist nämlich was ich beabsichtige :)

Hi,

Komme so leider nicht zum Erfolg, die Variable wir immer als nicht registriert gemeldet.

vorab - du benutzt ein veraltetes Session-Handling. Man sollte statt session_register() und Konsorten besser das Array $_SESSION benutzen. Ob eine Variable in der Session gespeichert ist, fragt man dann mit isset($_SESSION['variable']) ab.

Ansonsten kann ich bei deinem Code keine Fehler entdecken (außer der eckigen Klammer nach dem else-Zweig, aber das wird wohl ein Flüchtigkeitsfehler sein). Zumindest keine Fehler, die die gewünschte Ausgabe verhindern würden. Ich habe es mal so getestet:

<?php

class TestObjekt
{
   var $test;

function TestObjekt()
   {
      if (isset($_SESSION['test']))
      {
         echo "REGISTRIERT: ".$_SESSION['test'];
      }
      else
      {
         echo "NICHT REGISTRIERT";
         $_SESSION['test'] = "Hello World!";
      }
   }
}

session_start();

$obj = new TestObjekt();

?>

nach einem Reload kommt bei mir die Ausgabe "REGISTRIERT: Hello World!" - also wie gewünscht. Bleibt nur noch anzumerken, dass du in deinem Code _nicht_ die Variable test des Objekts ansprichst, denn diese wird über $this->test angesprochen. Mit

$test = "Hello World!";

legst du lediglich eine lokale Variable innerhalb der Methode TestObjekt() an.

Gruß,
Andreas.