Probleme mit in Sessions Regisrtierten Objekten
Philipp Grashoff
- php
Hi Forumler,
das Problem ist Folgendes: Ich serialize ein Objekt einer klasse, registriere es in der Session, leite per header weiter, unserialize dann das Objekt... soweit geht alles klar... wenn ich dann aber die Seite ein 2tes mal aufrufe, ist zwar das Objekt noch in der Session, aber alle Variablen sind leer. Dieses Verhalten kann ich mir leider gar nicht erklaeren...
//Erste Datei -> Objekt wird erstellt, serialized und man wird weitergelietet
$artikel1 = new Artikel();
...
$_SESSION['artikel1'] = serialize($artikel1);
header('location:artikel_eintragen_2.php');
//Zweite Datei -> Objekt wird unserialized
$artikel1 = unserialize($_SESSION['artikel1']);
echo $artikel1->name.'<br>';
echo $artikel1->beschreibung.'<br>';
echo $artikel1->hersteller.'<br>';
echo $artikel1->hauptgruppe.'<br>';
Wenn ich die Zweite Datei eben aktualisiere, sind alle Variblen von $artikel1 leer, die Session-Variable mit dem namen "artikel1" existiert aber noch... beim ersten Aufruf ist noch alles in Ordnung.
Ich hab mal ne "normale" Variable in der ersten Datei registriert, diese konnte ich beliebig oft aufrufen, ohne dass etwas unerwartetes passiert ist.
Sieht jemand zufaellig meinen Fehler? Ich naemlich nicht ;)
MFG
Philipp
Ach ja, kurzer Anhang:
die Klassendefinitionen habe ich ganz am Anfang vor session_start() eingebunden, daran kanns nicht liegen. Die Klasse hat allerdings nicht die Funktionen __sleep() und __wakeup(), aber diese werden ja auch nicht zwingend benoetigt, oder?
MFG
Philipp
Hi!
Du kannst Objekte direkt in der Session speichern, ohne sie zu serialisieren.
Ich denke Dein Problem besteht darin dass evtl. die Session nicht übergeben wurde? Bei header(...) solltest Du die Session als Parameter übergeben.
Grüße
Andreas