Warenkorb: Session vs. Datenbank

Chino

Erfahrenes Mitglied
moin!

ich bin derzeit dabei, ein shop-system in php zu programmieren. basiert soweit alles auf sessions und einer datenbank. wenn ein user einen artikel in den warenkorb legt, wird der artikel in einer warenkorb tabelle in der datenbank gespeichert. der warenkorb des users wird anhand der session, die über die url mitübergeben wird, identifiziert. jetzt gibts nur ein problem: wenn user a) die gesamte url an user b) übergibt, dann sieht user b) natürlich den inhalt des warenkorbes von user a). und das soll so nich sein.

es nützt mir ja auch nix, dass die session automatisch beim beenden des browsers gelöscht wird. jetzt überlege ich, wie das vermeiden kann.

soll ich zu jedem datensatz in der warenkorb-tabelle die ip des user noch speichern und dann beides abfragen? oder soll ich dann besser hingehen, und die produkte (produkt_id und menge) in der session zu speichern und dann erst den select über die produkte-tabelle zu fahren? tritt dann das gleiche problem auf?

für tipps wär ich dankbar :o)

cyas,
chino
 
hi,

also erstmal eine gegenfrage, wieso soll user a) denn die gesamte url an user b) übergeben? ist ja dann selber schuld ;)

aber gut, probiers doch einfach mit der idee von dir, noch die ip zu überprüfen, dürfte ja nicht allzu aufwendig sein.

bye
 
Original geschrieben von blubber
hi,

also erstmal eine gegenfrage, wieso soll user a) denn die gesamte url an user b) übergeben? ist ja dann selber schuld ;)

na ja, schon, aber was erst gar nich geht, das geht halt dann nich ne?! :)

hm, dann werd ichs mal mit der ip versuchen.
 
@Chino: also ich kann dir dabei leider nicht helfen, wäre aber trotzdem an deinem Script für den Warenkorb interessiert... Könntest du evtl so freundlich sein, und den weiterleiten ??

Vielen Dank & MfG, Natas
 
Ähm, sorry, tut mir leid, ich kann dir gerne tipps und anregungen geben, aber das script kann ich dir nich geben, da dem kunden das bestimmt nich gefallen würde. ich arbeite an der applikation nich erst seit gestern und das ganze ist ziemlich umfangreich, dass du damit eh nix anfagen kannst. ;o)
 
okay, ich wusste ja nicht, wofür du das Script nutzt *gg*

aber trotzdem Danke
 
hallo,

ich habe im prinzip das gleiche programmiert und habe nun eine frage: wie löschen sie die alten einträge aus der tabelle WARENKORB wenn z.b. ein user den warenkorb füllt aber nicht kauft (dann kann man den warenkorb ja auf alle fälle automatisch löschen)? werden diese alten einträge per cronjob mittels eines php-scriptes bereinigt? eine variante wäre ja auch einen timestamp mit in der tabelle zu speichern und dann per php-script alle alten einträge löschen. welche variante empfehlen sie bzw. haben sie verwendet?

vielen dank & freundliche grüße,
servantez

Original geschrieben von Chino
moin!

ich bin derzeit dabei, ein shop-system in php zu programmieren. basiert soweit alles auf sessions und einer datenbank. wenn ein user einen artikel in den warenkorb legt, wird der artikel in einer warenkorb tabelle in der datenbank gespeichert. der warenkorb des users wird anhand der session, die über die url mitübergeben wird, identifiziert. jetzt gibts nur ein problem: wenn user a) die gesamte url an user b) übergibt, dann sieht user b) natürlich den inhalt des warenkorbes von user a). und das soll so nich sein.

es nützt mir ja auch nix, dass die session automatisch beim beenden des browsers gelöscht wird. jetzt überlege ich, wie das vermeiden kann.

soll ich zu jedem datensatz in der warenkorb-tabelle die ip des user noch speichern und dann beides abfragen? oder soll ich dann besser hingehen, und die produkte (produkt_id und menge) in der session zu speichern und dann erst den select über die produkte-tabelle zu fahren? tritt dann das gleiche problem auf?

für tipps wär ich dankbar :o)

cyas,
chino
 
Re: Re: Warenkorb: Session vs. Datenbank

Original geschrieben von servantez
eine variante wäre ja auch einen timestamp mit in der tabelle zu speichern und dann per php-script alle alten einträge löschen.

So hab ich das auch gemacht. Musst aber drauf achten, dass Du bei jedem Update (sprich: Der User ändert seinen Warenkorb, indem er neue Produkte hinzufügt oder alte löscht) den Timestamp zu aktualisieren. Das Löschen der Datensätze kannst Du dann bequem per Cronjob erledigen lassen oder auch manuell (je nach Traffic auf der Seite).

Cyas,
Chino
 
Re: Re: Re: Warenkorb: Session vs. Datenbank

danke für die schnelle antwort. ich denke ich werde es wohl mit einem time-stamp machen und dann bei jedem zugriff auf den warenkorb (egal ob update, löschen oder hinzufügen) automatisch eine funktion starten, die die alten einträge löscht.

da fällt mir noch was ein. wie ist denn ihre meinung zum speichern der session im cookie, so dass der warenkorb auch noch nach wochen erhalten bleibt. ich bin am überlegen ob ich das machen sollte, stehe aber dem ganzen eher skeptisch gegenüber. man könnte ja auch dem eingeloggten user seinen warenkorb wieder vorlegen, in dem man die letzte session_id in der datenbank in der tabelle CUSTOMERS speichert. oder?



Original geschrieben von Chino
So hab ich das auch gemacht. Musst aber drauf achten, dass Du bei jedem Update (sprich: Der User ändert seinen Warenkorb, indem er neue Produkte hinzufügt oder alte löscht) den Timestamp zu aktualisieren. Das Löschen der Datensätze kannst Du dann bequem per Cronjob erledigen lassen oder auch manuell (je nach Traffic auf der Seite).

Cyas,
Chino
 
Zurück