wie meint ihr eigentlich mit der Text-Datei? Ich möchte, wie es üblich ist, auch ein “Merkzettel“ anbieten können.
Um überhaupt erstmal as anbieten zu können, muss es sich der Server erstmal merken. Vergiss das mit den Text-Dateien (erstmal), weil es im Prinzip die manuelle Umetzung von Sessions entspricht und die gibts ja nun mal schon
Sollen die Daten von Warenkorb in einer Textdatei auf dem Server sein, oder muss die Text-Datei eben anstatt Cookies auf dem Client sein?
BUUH! Was habt ihr bloss immer mit eurem "auffn Client speichern"?
Der Client ist böse und mehr als nicht unbedingt notwendig sollte da drauf nicht gespeichert werden, weil das sieht beim nächsten mal womöglich gleich alles ganz anders aus.
Aber dann kann man die Text-Datei genau so, wie Cookies manipulieren.
Hätte ich ma weiter gelesen ^^ Genau deswegen
Wenn die Text-Datei auf dem Server sein sollte, dann kann ich doch keinen “Merkzettel“ bei meinem Shop haben, oder?
Diese Implikation ist mir nicht ganz klar ^^ Aber ist ja auch egal.
Also, wie arbeitet eine Session? Eine Session legt eine Textdatei mit Krimskrams an, die er eine eindeutige ID zuweist. Diese ID schickt er auch (möglichst) als Cookie an den Client. Der Client schickt bei jedem Request natürlich alle Cookies an den Server, die für die Domain gültig sind. Der Server findet also seine Session-ID (SID) wieder, findet die dazugehörige Text-Datei und liest diese aus. So, nun noch ein paar Sonderfälle: In unregelmässigen Abständen werden alle Sessiondateien, die älter als x (glaube 15min) sind, gelöscht, können danach also nicht mehr fortgesetzt werden und es wird eine neue Sessiondatei angelegt. Oder aber der Benutzer schließt sein Browser, dann wird das Cookie gelöscht und die Session ist nicht wieder aufnehmbar.
Was bedeutet das nun für den Merkzettel? Du musst verhindern, dass er die Sessiondateien löscht und das der Cookie gelöscht wird. Das geht in der Regel nicht beziehungsweise nicht so einfach, also musst du wohl oder übel das Konzept ein stückweit nachbauen
Das bedeutet: Die gesamten Daten aus der Session legst du noch irgendwo anders ab (andere Datei, DB, wasauchimmer) und vergibst eine eindeutige ID (kann möglicherweise auch die SID sein, oder Benutzername, falls verhanden ^^). Nun sendest du noch deinen eigenen Cookie mit eben diese ID an den Browser, der allerdings auch nach Schließen des Browser noch existiert (Lifetime > 0? weiß garnet genau :X). Sollte nun der Benutzer deine Seite aufrufen und es kann
keine Session wieder hergestellt werden, so liest du mit der von dir gesetzten ID deinen Datenbestand aus und füllst damit die Session. Somit wäre der alte Zustand wieder hergestellt.
War so aussm Kopf, Fehler ruhig melden ^^
Nicht jeder Fehler ist ein Bug ...