Tom: Session löschen

Beitrag lesen

Hello,

Ich schreibe gerade an einem Onlineshop, bei dem es keine Benutzerregistrierung/Login gibt. Wann also soll ich die erstellten Sessions löschen? Dem User ein "Session löschen" anbieten finde ich nicht sinnvoll.

Das ist eine gute Frage. Die Sessiondateien werden bei PHP parallel zu allen anderen Aktionen vom GC (Garbage Collector) eingesammelt = gelöscht. Dieser wird durch session_start() als Childprozess im Hintergrund angestoßen. Typisch nach 1440 Sekunden Nichtbenutzung der Sessiondatei.

Ein Kunde, der sich nicht bewusst logged hat, wird auch kein Verständnis für "Abmelden" aufbringen.

Zum zweiten: Was mache ich mit Kunden, bei denen Cookies deaktiviert sind (Browsereinstellungen oder Firewall)?

Das müsste sich dann schon um eine Applikation-Firewall handeln, die in den Strem der HTTP-Daten eingreift. Browser wehren sich schon öfter...

Ich habe gelesen, dass es zu unsicher sei, die Session-Id in der URL zu übergeben. Wieso? Es wird wohl kaum jemand eine schon bestehende Session_Id erraten können.

Doch theoretisch schon. je mehr Sessions laufen, desto leichter.  Aber finden kann er sie in Logs, per emial versandten Websites, etc.

Man könnte durch vorheriges Versenden eines Cookies testen, ob dieser angenommen wird. Wen nicht, kann man den User darauf aufmerksam machen, dass das "Warenkorbsystem" (Cookies)  seines PCs nicht eingeschaltet ist.

Man benötigt für einen Anonymous-Shop aber überhaupt keine Sessions, da man die Daten wunderbar per Post von einem zum nächsten Formular weitertragen kann.

-> Datenarray
  -> serialize()
  -> base64_encode()
  -> Hidden Field
  -> base64_decode()
  -> unserialize()
  -> Datenarray

Das klappt ganz vorzüglich. Preise muss man natürlich immer wieder neu kontrollieren. Aber Artikelnummern zu faken hat i.d.R. für den User keinen Nutzen...

Wenn ich die URL-Unterstützung einbaue, wie kann ich die Anzahl Sessions in Grenzen halten/wann soll ich die bestehende Session löschen?

Die wird automatisch gelöscht.

Als Beispiel: Jemand betritt die Startseite (wo noch keine PHPSESSID dabei ist), und der drückt einige Male auf "Refresh". Schon habe ich mehrere Sessions, die Ewigkeiten halten können. Bei einem sehr gut besuchten Onlineshop geht das schon ins gewicht.

Nein. Das passiert nur, wenn der Knabe keine Cookies annimmt. Und das testet man eben vorher.

Kann mir jemand helfen?

Ja, gerne.

Grüße

Tom