Norbert: Objekte übergeben per Session

Hallo,

ich bin kurz vor dem verzweifeln. 3 Tage bastel ich schon daran rum und bekomme es einfach nicht auf die Reihe. Folgendes Problem, und ich hoffe es kann mir jemand helfen.

computerinformation.php
***********************

include_once 'classes/class_computer.php';
...
$_SESSION['pc'] = new Computer("Norbert");

(Der Konstruktor erwartet einen Namen für den Computer ;-) )

Nun gibt es irgendwo einen Link auf die Seite:
editComputer.php

In dieser Datei wollte ich jetzt per

print $_SESSION['pc'] -> getName();

Den Namen ausgeben lassen, aber es kommt immer folgende Fehlermeldung:

main() [<a href='function.main'>function.main</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;Computer&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in

Im Internet wird so viel rum diskutiert und erklärt, aber alles hilft irgendwie nicht.

Folgende Sachen habe ich schon versucht:
 - Verona Feldbusch angerufen ... Sie meinte der BLubb fehlt
 - session_start(); in jede Datei geschrieben
 - include_once durch require_once und ohne once ausprobiert
 - include/require auch in die editComputer.php geschrieben
 - session_start() vor und hinter include/require
 - __autoload() funktion geschrieben

Was aber geht ist, wenn ich

print $_SESSION['pc'] -> getName();

in die computerinformation.php schreibe.

DIe komplette Alternative dazu war mit serialize zu arbeiten und dann im Link per GET zu schieben. Hatte aber zwei Nachteile:

  1. Im Link waren so komische schwarze Fragezeichen und andere komische Symbole
  2. Es geht nicht

Habe aber auch gehört, dass es nicht so toll sein soll das mit dem Link zu machen. In der Session wäre es perfekt.

Also kann mir bitte jemand helfen, bevor ich hier einen Anfall bekomme? Und bitte nicht auf php.net oder so verweisen, das habe ich schon alles durchgelesen. :-)

Ich versuche mal ein Minimalbeispiel zu erstellen

Danke
Norbert

  1. hi,

    In dieser Datei wollte ich jetzt per

    print $_SESSION['pc'] -> getName();

    Den Namen ausgeben lassen, aber es kommt immer folgende Fehlermeldung:

    main() [<a href='function.main'>function.main</a>]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition &quot;Computer&quot; of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in

    Und, hast du das gemacht?
    Die Definition der Klasse also auch in dieser Datei wieder eingebunden, _bevor_ du die Session wieder aufnimmst?

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
  2. Problem ist selbst behoben.
    Es lag nur daran, dass ich erst andere Files included hatte und dann die class_computer.php

    Ich habe jetzt

    include_once 'class/class_computer.php';
    session_start();
    include 'xyz.php'
    ....
    (auf der 2. Seite)

    Auf der 1. Seite habe ich kein Session_start();

    Irgendwie komisch, aber vielleicht braucht das nochmal irgendwann irgendwer :-)

    Danke trotzdem für eure Zeit

  3. Hallo,

    Folgende Sachen habe ich schon versucht:

    • Verona Feldbusch angerufen ... Sie meinte der BLubb fehlt

    Warum hast du nicht erst noch Heidi Klum angerufen,vielleicht hätte sie es gewußt?

    gruß aus Hosena