Hello,
Hmm das ist gar nicht gut, ich selber brauche ab und an länger als eine halbe Stunde um mir einen Warenkorb zusammenzustellen (wenn ich z.B. das Browserfenster ein paar Stunden offen lässe während ich mich irgendwo berate...). Wenn ich dann wiederkomm, würd ichs gar nicht schön finden, alles gelöscht vorzufinden (passiert aber nie).
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.
Wie macht man das genau?
Du sendest einen Cookie mit setCookie() und einen zusätzlichen Header("Location: http://start.php");
Dann kannst Du auf der Seite start.php schauen, ob der Cookie angekommen ist. Man sollte natürlich dafür sorgen, dass start.php nicht direkt aufgerufen wird. Kann man nicht unbedingt vermeiden, also kann man gleich einen Selbstbezug aufbauen. Aber Vorsicht! Das gibt einen "Kurzschluss". Da muss man dann mindesten einen Parameter mitgeben, der Aufschluss darüber gibt, ob die Umleitung schon stattgefunden hat.
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()
-> DatenarrayIst mir aber zu umständlich, bei jedem Link eine Javascript-Zeile hinzuzufügen, der den Submit eines Formulars mimt (was natürlich bei ausgeschalteten JS auch nicht gut ist ;)).
-------------------------------------------------------
Wer spricht denn von JavaScript? Das geht total ohne!
-------------------------------------------------------
Wann wird denn die gelöscht? Ich möchte auf keinen Fall, dass die Sessions gelöscht werden, während sie theoretisch noch gebraucht werden (auch wenn sie vom User praktisch ein paar Stunden liegengelassen werden).
Da gibts neu eine Lösung: nur authentifizierte Kunden annehmen. Wäre mir sowieso viel sicherer wegen Belehrung, Rücktritt, Fake-Bestellungen etc. Denen kann man dann eine feste Session-ID zuordnen, die niemals gelöscht wird. Dann muss man aber einen zusätzlichen Login-In PIN vergeben. (@Sven: *pssst* Irgendwann verstehst Du meine Logik auch noch :-))) )
Conclusion:
Für nicht authentifizierte Kunden ist eine Session "Kanonen auf Spatzen". Da reicht die Methode mit dem HiddenField vollkommen.
Grüße
Tom