![]() |
| | Themen-Optionen |
| | Nach oben #21 |
| Lutz Registriert seit: 14.08.2005 Ort: Nienburg / Weser
Beiträge: 684
|
Ähm, ich verstehe das Zitat jetzt so, als wollten die alle Sessions in einer Datei speichern, wäre es denn nicht eher angebracht, für jede neue Session eine neue Datei anzulegen, wenn man es schon mit Dateien realisiert?
__________________ Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
| | |
| | Nach oben #22 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
|
...absolut! So müsstest du die Datei ja bei jedem Schreibzugriff locken und da du nicht mit den Zeiten im FS arbeiten kannst, musst du bei jedem Request eines jeden Besuchers zwangsläufig den Session-Datensatz anfassen, zumindest um den aktuellen Zeitstempel reinzusetzen. Unf für jede Änderung musst du die komplette Datei einmal Umkopieren! Basti |
| | |
| | Nach oben #23 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
|
Danke für die Kommentare. Daraus schließe ich jetzt, dass man als klare Aussage das hier nehmen könnte: Die Verwaltung der Session über eine Datenbank ist langsamer, als eine dateibasierte Sessionverwaltung." Stimmt das dann nun so? |
| | |
| | Nach oben #24 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
|
Nein. Die Aussage ist: Es ist schneller für jede Session eine eigene Datei zu führen, als alle Sessions in eine Datei zu schreiben, falls man die Daten überhaupt in Dateien speichern möchte. Allerdings finde ich es wiederum unsinnig, einen eigenen Session-Handler zu schreiben, der die Sitzungsdaten in Dateien packt, denn das macht PHP ja nicht schlechter! Natürlich sollte das ganze Session-Handling in eine Klasse, um den ganzen Sicherheitskrempel zu erledigen (z.B. SID-Wechsel beim ersten Start) und natürlich setzt man den session.save_path nicht in ein Verzeichnis, in dem andere Benutzer auf dem Server lesen und schreiben dürfen - zumindest nicht, wenn die PHP-Prozesse eines jeden Kunden nicht unter einer eigenen UID ablaufen (ich denke mal, dass das einige Provider vernachlässigen und z.B. sowohl mod_php einsetzen, als auch ein gemeinsames /tmp konfiguriert haben!) Aber die Daten würd ich sonst nur in eine DB packen, wenn ich noch einen anderen Zugriff drauf brauche, als nur aus der Session selbst heraus auf die aktuellen Session-Daten. BTW: Im anderen Forum wurde das Beispiel Benutzer löschen genannt. Ich gehe davon aus, dass die Session-interne Lösung schneller ist und handhabe das von daher so, dass ich die Benutzerdaten nicht in die Session schreibe, sondern nur die UID, anhand derer ich dann bei jedem Request die Benutzerdaten aus der Datenbank lese (eben weil mir das auch zu unsicher ist, dass ich andernfalls keinen Benutzer löschen könnte, wenn der die Session am Leben hält - wobei es natürlich schon eine maximale absolute Session-Laufzeit gibt, die aber natürlich eher groß eingestellt wird). Ansonsten: Benchmarking. Anders wirst du das nicht rausbekommen, es sei denn, du hast hier schon Erfahrungswerte oder Messergebnisse mit ähnlicher Anordnung. Basti |
| | |
| | Nach oben #26 | |
| Johannes Müller Registriert seit: 15.09.2005 Ort: Königreich Flieden
Beiträge: 521
| Zitat:
__________________ Weißt Bescheid - Scheiß wie weit | |
| | |
| | Nach oben #27 | |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.480
|
Einfach mal die ursprüngliche Frage lesen Zitat:
| |
| | |
| | Nach oben #28 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 826
|
Das Problem ist grundsätzlich, dass alle Daten, die du einmal in die Session packst und später nicht mehr mit den persistent gespeicherten Daten abgleichst Probleme machen können. Von einfachen Race Conditions (z.B. könnten für einen Wizard Daten eingelesen werden, die ein Benutzer über mehrere Seiten hinweg bearbeitet; bevor er die Daten speichert, also von der Session wieder in den persistenten Speicher schiebt, ändert aber ein anderer Benutzer die Daten, was dann eben zu Konflikten führen kann ... wobei aber natürlich auch "normale" Requests das gleiche Konfliktpotential beinhalten) bis hin zu sicherheitskritischen Konflikten (z.B. eben, wenn Zugriffsrechte auch dann noch in der Session stehen, wenn sie dem Benutzer bereits entzogen wurden). Basti |
| | |
| | Nach oben #29 |
| Neuer Benutzer Registriert seit: 21.01.2007
Beiträge: 6
|
kleiner Vorgeschmack: im Zend Framework ist ein userdefiniertes Session-Management geplant für die version 0.8.0 bzw 0.9.0. Da ich von Zend insgesamt recht überzeugt bin, ist das bestimmt mindestens einen Blick wert. Gruß |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Rezension] PHP 5 Kochbuch | Artemis | Literatur | 2 | 07.09.2006 19:15 |
| PHP 5.1.5, PHP 4.4.4 und PHP 5.2.0 RC2 veröffentlicht | Ben | Nachrichten | 2 | 01.09.2006 16:05 |
| PEAR Klasse für dreidimensionale Grafiken via PHP | Ben | Nachrichten | 1 | 20.03.2006 22:18 |
| synthax highlighting Klasse für HTML und PHP | robind | Desktop-Applikationen und Grafik | 15 | 16.01.2006 15:11 |
| Neue PHP "release candidates": PHP 4.4.2 RC 1 und PHP 5.1 RC 6 | Ben | Nachrichten | 1 | 21.11.2005 20:48 |