phpbar.de logo

Mailinglisten-Archive

[php] objekte in sessions

[php] objekte in sessions

Sebastian Mendel lists at sebastianmendel.de
Fre Apr 15 12:46:23 CEST 2005


Hi Lars,

Lars Brinkmann schrieb:
> Hallo Sebastian,
> 
> 
>>Seine Reihenfolge war doch richtig! Er hat lediglich session_register()
>>mit $_SESSION gemischt.
>>Und man muss doch ein Objekt nicht erst lokal erstellen um es dann in
>>die Session zu kopieren.
> 
> Korrigier mich bitte, wenn ich falsch liege:
> 
> if (!isset($_SESSION['obj'])) {
>   session_register ('obj');
> // Die Variable 'obj' wird in der Session registriert. Ohne Wert, weil
> dazu hätte dieser vorher existieren müssen. Ein $obj existiert aber zu
> diesem Zeitpunkt noch gar nicht.
>   $obj = new test();
>   $obj->var = 20;
> // Jetzt wird $obj erst initialisiert. Quasi müsste sich an dieser
> Stelle die Session-Variable 'obj' automatisch aktualisieren. Ich
> wüsste nicht, dass das geht. Aber wie gesagt, korrigier mich bitte.
> Ausprobiert habe ich das allerdings selber auch noch nicht. Es klingt
> für mich einfach unlogisch.
> }

Abgesehen davon das ich eigentlich keine Lust habe mich über veraltete
Funktionen zu unterhalten, folgendes:

session_register() setzt register_globals=on voraus,

session_register() kopiert nicht die Variable in die Session sondern
'registriert' sie dort, legt also entweder eine Referenz in der Session
zu der Variable ab oder merkt sich einfach das diese Variable am
Scriptende in das Session-File gespeichert wird und beim nächsten
Session-Start wieder geladen wird.

Für mich liest sich das also im Handbuch genau so wie du es für
unlogisch hältst - was für mich übrigens nicht unlogisch erscheint, denn
die Funktion heißt ja nicht session_copy().

http://www.php.net/session_register


Meines Erachtens war sein vorgehen also richtig, bis auf das besagte
mischen, und eventuelles fehlen des register_globals=on.

Aber das ist ja alles vollkommen irrelevant, er soll halt einfach nur
$_SESSION verwenden.

-- 
Sebastian Mendel

www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet

php::bar PHP Wiki   -   Listenarchive