Shop Probleme

tschimo

Mitglied
Hallo leute ich habe ein kleines Problem, ich habe mir einen Shop programmiert, der funktioniert auch super nur meine Problem ist:

Falls der User die Seite schliesst ohne den Warenkorb zu leeren bleiben diese Artikel einfach in der Tabelle hangen.

Gibt es irgend eine Funktion oder Möglichkeit, dass wen der User die Page schliesst es auch automatisch die Datensätze mit seiner Session ID aus der Tabelle löscht?

Gruss
 
Da PHP Serverseitig arbeitet hast du keine Ahnung wenn der User seine Seite schliesst. Du kannst mit JavaScript erkennen, wenn der User deine Seite verlässt. Mit dem Befehl "onunload". Beim Opera aber funktioniert der nur wenn man die Seite verlässt, aber nicht wenn die Seite geschlossen wird. Und natürlich geht das auch nicht wenn der User JS (JavaScript) deaktiviert hat.

Was du nun machen kannst, ist mit CronJobs zu arbeiten. Du kannst mit einem CronJob jeden Abend z.B. alle Einträge löschen, welche älter als... 6 Stunden sind oder so...
Wenn du keine CronJobs hast kannst du auch einfach auf der Startseite deines Shops ein Script ausführen, welche alle Einträge löscht, welche älter als 6 Stunden sind....

Hoffe das bringt dir was...

X
 
Wie werden denn die Warenkorbinhalte mit dem Benutzer assoziiert? Geschieht das über PHP-Sitzungen, könntest du ganz einfach prüfen, ob es noch eine Sitzungsdatei im Temporärverzeichnis vorhanden ist.
 
Hallo redX schon auf das erste Problem mit deiner Version gestossen,

falls ein User nach 18:00 einkauft funktioniert das ganze nicht da z.B

18:05 + 6 Stunden = 24:05 <-- und dies ist ja gar nicht möglich
 
ich habs, ich überprüfe nicht ab es 6 stunden sind sondern ob das aktuelle Datum grösser ist als das datum das in der Tabelle steht :)

danke für deinen Gedankensanstoss
 
Du könntest entweder bei jedem Aufruf prüfen, ob es Sitzungen gibt, die abgelaufen sind, die also keine Sitzungsdatei für die Sitzungsvariablen mehr besitzen, und damit auch die Datensätze in der Datenbank löschen. Oder du schreibst dir einen eigenen Sitzungs-Handler (siehe session_set_save_handler()-Funktion).
 
Da würde ich auf jeden Fall Gumbos Lösungsvorschlag wählen. Einziges Problem hierbei dürfte sein, dass du von PHP aus wahrscheinlich nicht auf das tmp-Verzeichnis des Servers zugreifen darfst.
 
Zurück