Portal > Foren > PHP > PHP-Programmierung > session_set_save_handler, Zerstörung von Objekten vor dem Schreiben der Session
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 06.12.2007, 11:23 Nach oben    #1
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard session_set_save_handler, Zerstörung von Objekten vor dem Schreiben der Session

Hallo,
ich habe folgende Frage.

Bei der Umstellung von PHP4 auf PHP5 tritt ein Problem mit Sessions auf.
Die Sessions werden in einem Cache gespeichert.

Nun ist es in PHP 5.x.x (weiß sich seit welcher Version) aber so, dass am Ende des PHP-Skripts zuerst alle Objekte zerstört werden und danach erst die Session geschrieben wird.

Wie im Manual beschrieben entsteht da durch ein "Henne-Ei-Problem".

Meine Frage ist nun .. wie kann ich denn ein Objekt zur Speicherung von Sessions im Cache, einer Datenbank, ... nutzen, ohne das entsprechende Objekt nachträglich erneut zu instanziieren?

Die Möglichkeit via session_write_close() ist mir bekannt (steht auch in den Kommentaren zur Funktion sess_set_save_handler(), allerdings ist es nicht so, dass hier ausschließlich Klassen verwendet werden.

Hm, .. .. komisch beschrieben.
Trotzdem danke für die Hilfe.

Grüße, Ben.


Nachtrag:

Das ganze existiert so seit Version 5.0.5
Zitat:
"Write and Close handlers are called AFTER destructing objects since PHP
5.0.5. Thus destructors can use sessions but session handler can't use
objects. In prior versions, they were called in the opposite order. It is
possible to call session_write_close() from the destructor to solve this
chicken and egg problem. "
Quelle: http://marc.info/?l=php-general&m=113833844422096&w=2

Geändert von Ben (06.12.2007 um 11:28 Uhr)
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.12.2007, 18:48 Nach oben    #2
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 847
Standard

Ich hab dein Problem nicht verstanden. Was spricht dagegen, die Session direkt vor dem Skript-Ende zu schließen? Und, serialize() zerstört doch nicht deine Objekte, solange __sleep() nur Daten ausgibt, das Objekt aber nicht verändert.

Basti
Basti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.12.2007, 11:21 Nach oben    #3
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Zitat:
Zitat von Basti Beitrag anzeigen
Ich hab dein Problem nicht verstanden. Was spricht dagegen, die Session direkt vor dem Skript-Ende zu schließen?
Damit meinst du eine explizite Schließung, ne?

Davon wollte ich erstmal keinen Gebrauch machen.

Zitat:
Zitat von Basti Beitrag anzeigen
Und, serialize() zerstört doch nicht deine Objekte, solange __sleep() nur Daten ausgibt, das Objekt aber nicht verändert
Ok, nix gerafft.

Ist auch egal, da das Problem mittlerweile anderweitig gelöst wurde.
Darauf kann ich an dieser Stelle aber nicht genauer eingehen.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.12.2007, 12:47 Nach oben    #4
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 847
Standard

Aha? Na denn…
Basti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 13.12.2007, 13:17 Nach oben    #5
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.512
Standard

Zitat:
Zitat von Basti Beitrag anzeigen
Aha? Na denn…
Jaaa

Ist intern.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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 sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Session Sicherheitsfrage phpdev PHP-Programmierung 24 23.08.2007 22:38
SESSION übergabe automatisch? web2 PHP-Programmierung 3 28.02.2007 14:00
Mails empfangen / versenden "Access to default session denied" Robinson Allgemeine Java-Programmierung 0 14.12.2005 15:11
Session - Projekt Kommunikation DasMööp PHP-Programmierung 17 23.08.2005 00:02
[PHP] Daten per Session übergeben Ben Tutorials 0 14.12.2004 14:34


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:45 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45