php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 27.04.2007, 11:44  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard objekte und session

Hi,

ich weiß, dass Thema wurde schon huntertmal besprochen.
Ich habe aber keine Lösung für mein problem gefunden.
Ich möchte ein Objekt in einer Session speichern.

Ich habe dazu dieses Beispiel ausprobiert: http://www.developers-guide.net/foru...ekt-persistenz

das beispiel funktioniert aber nicht. Wenn ich mir das übergebene Objekt angucke mittels print_r beomme ich : __PHP_Incomplete_Class Object

das objekt wird nicht korrekt wieder hergestellt.
Die werte sind noch da, aber die methoden lassen sich nicht mehr benutzen.
Kann mir jemand sagen, woran das liegen könnte?

Danke, Crypi
__________________
PostgreSQL Forum:
www.pg-forum.de
Crypi ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 27.04.2007, 11:46  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Im zweiten Absatz steht doch eigentlich schon der Klu:
Zitat:
Die Objekte degenerieren hierbei zu "unvollständigen Klassen", die
zwar wie eine stdClass alle Eigenschaften behalten haben, aber um jegliche Methoden
beraubt sind.

Warum dies geschieht ist schnell erklärt, der Quellcode der Klassen ist zum
Zeitpunkt des Aufrufs von session_start() nicht verfügbar und PHP ist nicht bekannt, wie das Objekt zu rekonstruieren ist. Die Lösung des Problems ist eigentlich sehr simpel. Die
Klassen müssen inkludiert werden, bevor session_start() aufgerufen wird.
Zergling-new ist offline  
Alt 27.04.2007, 12:29  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard

ja, aber selbst wenn ich das tue, also das includieren vor dem session_start, oder auch wenn ich die klasse im gleichen skript deklariere klappt es nicht.

und in dem beispiel tut er das ja auch....
selbst bei copy&paste funktioniert das beispiel nicht.

noch einmal ein beispielcode der nicht funktioniert:
PHP-Code:
<?php

class meineKlasse { var $eigenschaft 0; }


if(
$_POST[action]=="loeschen"){

session_destroy();
}


session_start();

if ( ! isset( 
$_SESSION['objekt'] ) )
{
    if (!
is_object($_SESSION['objekt']))
        
$_SESSION['objekt'] = new meineKlasse();



    echo 
'Lege Objekt in Session an.' "
\n"
;
    
$_SESSION['objekt'] = new meineKlasse;
    echo 
'Eigenschaft: ' $_SESSION['objekt']->eigenschaft "
\n"
;
}
else
{
    echo 
'Objekt existiert bereits in Session.' "
\n"
;
    echo 
'Eigenschaft: ' $_SESSION['objekt']->eigenschaft "
\n"
;
}

$_SESSION['objekt']->eigenschaft 'blahblahblah';








//echo $_SESSION['objekt']->eigenschaft;
print_r($_SESSION['objekt']);



?>

  
  
  <form method=POST> 
  
  <input type=submit name=action value=loeschen>
  <input type=submit value=aktualisieren>
  </form>
__________________
PostgreSQL Forum:
www.pg-forum.de
Crypi ist offline  
Alt 27.04.2007, 15:37  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

sinnfrei.
PHP-Code:
if ( ! isset( $_SESSION['objekt'] ) )
{
    if (!
is_object($_SESSION['objekt'])) 
dito:
PHP-Code:
    if (!is_object($_SESSION['objekt']))
        
$_SESSION['objekt'] = new meineKlasse();

    echo 
'Lege Objekt in Session an.' "
\n"
;
    
$_SESSION['objekt'] = new meineKlasse
Was passiert denn beim Erstaufruf?
nikosch ist offline  
Alt 27.04.2007, 15:46  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Is vielleicht session-autostart gesetzt? Weil dann is klar, dass du die Klassen nicht vorm Session-Start laden kannst ^^
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 27.04.2007, 16:05  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard

zugegeben... der kram ist doppelt...
aber egal. ist beim hin und her wurtschteln so übrig geblieben.


beim ersten ausführen klappt es wunderbar.
__________________
PostgreSQL Forum:
www.pg-forum.de
Crypi ist offline  
Alt 27.04.2007, 16:15  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard

ok. daran lags. hab das session.start_auto abgeschalted.

ich versuche das ncoh zu verstehen.
hat er jetzt versucht, sofort, also ganz zu anfang, das objekt wieder herzustellen, bevor die klasse definiert wurde und hat es deswegen nicht geklappt?
und erst durch diese änderung wird die session wirklich erst bei session_start() gestartet?


Danke für eure Mühe!
Crypi
__________________
PostgreSQL Forum:
www.pg-forum.de
Crypi ist offline  
Alt 27.04.2007, 16:42  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Korrekt. Was eventuell auch geklappt hätte, wäre: Session beenden, Klasse laden, Session neu starten.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 02.05.2007, 09:40  
Erfahrener Benutzer
 
Registriert seit: 14.09.2004
Beiträge: 382
Crypi
Standard

du meinst mit session_destroy() ?

aber dadurch wären doch andere daten die in der session gespeichert wurden auch verloren gegangen oder?
__________________
PostgreSQL Forum:
www.pg-forum.de
Crypi ist offline  
Alt 02.05.2007, 17:36  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

Nein und Ja. Die Daten wären dann weg, aber ich meinte session_write_close Das wäre dann interessant, wenn du zB bei einem webspace session.autostart nicht selbst manipulieren kannst.
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Session Problem karina_02 PHP Tipps 2008 6 18.05.2008 22:37
Session Variablen als Referenz!? O_o Sam781 PHP-Fortgeschrittene 4 01.10.2007 11:19
Problem bei session Lifetime Cyberbob_at_tot PHP Tipps 2007 5 05.06.2007 17:47
Session in Session tinchen PHP Tipps 2007 22 21.03.2007 19:53
PHP 5 Objekte in Session philomat PHP-Fortgeschrittene 1 17.02.2007 17:47
session nach seitenwechsel leer... GELight PHP Tipps 2006 8 17.09.2006 15:17
Frage zur Anwendung einer Session mehrfach... GELight PHP Tipps 2006 10 12.03.2006 16:47
[Erledigt] php session problem :( PHP Tipps 2005-2 5 21.10.2005 16:37
Session abschaltbar?? Probleme mit Objekten in Session! becks123 PHP-Fortgeschrittene 3 19.09.2005 15:47
Klassenobjekt in ner Session speichern?! Finkman PHP Tipps 2005-2 5 09.08.2005 00:38
Session wird nicht angelegt PHP Tipps 2005-2 7 24.07.2005 13:35
Kreieren einer Session PHP Tipps 2005 11 28.05.2005 15:16
verliere Session Sonja PHP Tipps 2005 3 27.04.2005 09:32
[Erledigt] Formulardaten in einer Session speichern, per Link übergeben PHP Tipps 2004-2 2 29.12.2004 15:47
[Erledigt] Hilfe...PhpBB Session Problem!! PHP Tipps 2004-2 2 15.12.2004 18:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php objekte in session speichern

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:27 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.