Yo!
Also keine so besonders gute Idee.
doch, doch ;-)
Ich dachte mir schon, dass PHP genau das (nur eben schneller) macht, was ich vorschlage; aber: Andreas sagte, dass die Daten erst beim _nächsten_ Programmstart wieder einlesbar sind (keine Ahnung warum??? - Session wird nur am Beginn eingelesen und nachher nicht mehr aktualisiert???). Deshalb schlug ich die Variante vor, dass man die Daten eben selber aufbewahrt und somit immer den aktuellen Stand in der Datei hat, sodass er auch im selben Programm noch auf die gespeicherten Daten zugreifen kann...
Das ist ein Denk- oder Umsetzungsfehler bei den Sessions. Meine Erfahrungen sind da etwas anders.
Wenn in der Session bereits Daten gespeichert sind, werden diese in die entsprechenden Variablen übertragen, sobald im Skript start_session() aufgerufen wird. Ab da hat man also die von der letzten Seite hinübergeretteten Werte verfügbar und kann mit den Variablen arbeiten.
Wenn die Bearbeitung erfordert, weitere Daten zu speichern, wird man diese Daten sinnvollerweise in die Variable tun.
Weiterer Output für den Besucher (also die erneute, jetzt ergänzte Ausgabe des Warenkorbinhaltes) wird man sinnvollerweise basierend auf der Variablen generieren.
Endet das Skript, dann wird der aktuelle Zustand der Variablen wieder gespeichert. Fertig.
Insofern ist die Session-Lösung einer Datenbanklösung absolut gleichwertig, jedenfalls vom Datenhandling und ihrer Verfügbarkeit.
Hast mich grad noch auf eine andere Lösung gebracht:
Wenn schon die Performance gut sein soll: Warum nicht am Anfang eines jeden Programmes den Datenbestand der Session in ein assoz. Array spiegeln, dann _nur_ dieses Verwenden (dann hat man immer die aktuellen Daten, auch wenn diese geändert wurden), und am Schluss des Programmes die ganzen Daten aus dem Array wieder in die Session schreiben?
Warum nicht gleich diese Hashvariable als Sessionvariable festlegen? :)
- Sven Rautenberg