phpbar.de logo

Mailinglisten-Archive

[php] Objekt in Session ohne Inhalt

[php] Objekt in Session ohne Inhalt

Sebastian Tobias Mendel genannt Mendelsohn lists at sebastianmendel.de
Fre Okt 31 10:21:59 CET 2003


>>>Include('object.class');
>>>$foo = new obj();
>>>Session_start();
>>>$_SESSION['foo'] = $foo;
>>>...
>>
>>das ist schlecht so!!!
>>wenn z.b. 'register_globals=on' ist, dann ist $foo und 
>>$_SESSION['foo'] 
>>eh die selbe Variable!
> 
> Is 'on'. Da sieht man wie weit mich die Verzweiflung bereits gebracht
> hat! :D
> Aber wenn "$foo = new obj();" == "$_SESSION['foo'] = $foo;" müsste doch
> auch
> 
> Include('object.class');
> $_SESSION['foo'] = new obj();
> Session_start();
> 
> Funktionieren. Warum? Ich schreibe doch in eine Session, die erst in der
> nächsten Zeile gestartet wird, oder irre ich wieder?

du kannst doch nichts in die Session schreiben bevor du die Session 
startest! also tausch die Zeilen!

ich kenne auch keine einziges Beispiel aus dem Handbuch wo es in dieser 
Reihenfolge stehen würde, es ist ja auhc nicht unbedingt immer nötig 
gleich alles zu verstehen was im Handbuch steht, man sollte es aber 
zumindest trotzdem erst mal so machen wie es da steht, das Verständnis 
kommt meißt später ... ;-)


> [...]

so nach kurzem 'Überflug' deines Codes sieht er eigentlich ... naja, 
zumindest müsste er funktionieren :-)

bis auf das wie du halt mit der Klasse un dem Objekt in der Session umgehst!

  - erst die Klassen definieren
  - dann die Session starten
  - dann die Objekte verwenden/initialisieren

1. ... klasse ...
2. ... session ...
3. ... objekt ....

und _immer_ mit $_SESSION arbeiten, und immer erst _nach_ session_start()

wenn globals=on gleiche variablen-namen vermeiden

also $_SESSION['foo'] und $foo

am besten immer vermeiden, auch wenn globals=off,

-- 
Sebastian Mendel (www.sebastianmendel.de)

*www.warzonez.de* | www.tekkno4u.de | www.nofetish.com

php::bar PHP Wiki   -   Listenarchive