![]() |
Objekte in Sessions
weiß wer, wie man man objekte in sessions übergeben kann?
ich hab eine klasse, deren namen ich registriere, allerdings kann ich damit im zweiten skript nix anfangen. konkret: class test { var $try = 0; function incTry ($a) { $this->try += $a; } } session_start (); $versuch= new test; $versuch->incTry (4); session_register ("versuch"); echo "<a href=\"try2.php\">asdfasfd</a>"; in datei try2.php hab ich dann evenfalls die gleiche klassendefinition, wenn ich mit echo $versuch ausgebe, zeigt er mir an, dass es ein objekt ist, er kennt es also. allerdings gibt er mir beim zugriff auf die variablen und methoden eine fehlermeldung aus: Fatal error: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition test of the object you are trying to operate on was loaded _before_ the session was started in _pfad_/try2.php on line 13 die datei try2.php schaut so aus: class test { var $try = 0; function incTry ($a) { $this->try += $a; } } echo "$versuch "; $a = $versuch->try; |
In try2.php musst Du die session starten, also mit:
session_start (); |
alibert hat recht
sobald du die session auch im zielfile öffnest, kannst auf alle abgespeicherten objekte/variablen zugreifen.
|
danke, ich habs jetzt zwar anders gelöst, aber trotzdem danke
fürs nächste mal dann hilfreich aber andere frage: wieso ist dies für objekte notwendig, session_start in den zielfiles zu schreiben für andere vars ist es nicht notwendig |
Das kommt immer darauf an, wie die Variablen übergeben werden.
Das hat nix mit Objekt oder Nicht-Objekt zu tun. Eine Session musst Du daher im Zielfile immer starten, sobald Du Variablen per Session übergibst. |
wenn die variablen per href übergeben werden, also z.b. so
<a href="irgendwas.php?variable1='var1'&variable2='va r2'> dann geschieht das ohne session und du kannst gleich im zielfile drauf zugreifen. ist unkomplizierter als sessions und eher zu empfehlen, wenns nur um eine simple übergabe geht. |
@raistlin
ich brauch die vars über mehrere files hinweg. das mit der übergabe ist mir klar, danke @alibert1 hab das ganze jetzt über arrays gelöst session_start hab ich im ersten file der insgesamt 13. bei arrays reicht ein einfaches session_register ("arrayname") und ich hab das array die ganze session hinweg zur verfügung nur bei objects hats nicht funktioniert |
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag