Karl K.: __PHP_Incomplete_Class

Beitrag lesen

Hallo Forum,

mein Login habe ich mittels .htaccess realisiert. Nach korrekter
Eingabe komme ich auf die index.php im Root-Verzeichnis. In dieser
überprüfe ich anhand $_SERVER['PHP_AUTH_USER'], ob der User auch
in der DB registriert ist. Wenn ja, dann lege ich eine neue
Instanz der Klasse $user an. Und diese Instanz möchte ich gerne
in meiner Session hinterlegen, damit mir die Eigenschaften/Einstellungen
des Users anwendungsweit zu Verfügung stehen, ohne stets eine neue
DB-Abfrage starten zu müssen. So - und hierbei kommt dann bei mir
o.g. Fehlermeldung: __PHP_Incomplete_Class. Es ist keine direkte 'Fehler'-
Meldung, sondern der Wert wurde in der Session hinterlegt - da, wo
eingentlich meine User-Object stehen sollte:
Array
(
    [user] => __PHP_Incomplete_Class Object
        (
            [__PHP_Incomplete_Class_Name] => user
            [usr_id] => 1
            [email] => admin@xyz.com
            [prename] => Hans
            [surname] => Beddeker
            [nickname] => embededhansi
            [show_menu] => 0
        )

)

Nach längerem Stöbern habe ich diesbezüglich ein paar comments
gelesen, dass das wohl ein Bug sei. Dem möchte ich aber keinen
Glauben schenken. Dann habe ich von 4.3.3 auf 4.3.10 upgedatet -
doch auch hier liegt dieses Problem vor. Die 5er kann ich nicht
nehmen, da mein Provider auch nur mit der 4.3.10 fährt..

Zudem habe ich gelesen, dass wohl das eigentliche Problem hierbei
ist, dass das User-Object zu dem Zeitpunkt, wenn es in die Session
geschrieben wird, noch nicht komplett initialisiert wurde. Und daher
nur 'halb' in der Session hinterlegt wird. Daher habe ich etliche
'Reihenfolgen' ausprobiert.. doch bin einfach nicht an diesem
Problem vorbeigekommen.

Nun, hat von Euch einer hierfür einbe Lösung parat bzw. dieses
Problem schonmal gehabt und/oder behoben?

Besten Dank für Bemühungen
Karl K.

----code---

$saveTmpUser=false;

if($_REQUEST['isFirstCall']!="false")
{
  $usr = createUser();
  $_REQUEST['isFirstCall']="false";
  $saveTmpUser=true;
}

session_start();

if($saveTmpUser)
  $_SESSION['user'] = $usr;

if(!$_SESSION['user']||$_SESSION['user']==null)
goDie();