[gelöst] Wie kann ich einen Warenkorb realisieren?

Alles, was PHP betrifft, kann hier besprochen werden.

[gelöst] Wie kann ich einen Warenkorb realisieren?

Postby Sandro » 09. June 2007 09:22

Hallo,
ich bin dabei ein Online-Shop (System Ubuntu-Server) in PHP / Mysql zu erstellen. Jetzt ist der Warenkorb an der Reihe.

Hat irgendjemand Erfahrung damit, bzw. mir einen Tipp geben kann, wie ich ihn am besten realisieren konnte?

Wahrscheinlich mittels Sessions, oder gibt es eine bessere Möglichkeit?

Ich habe etwas gegooglet, mit Hilfe der Sessions und der Klasse Cart von PHPLIB kann man einen Warenkorb realisieren. Was würdet ihr dazu sagen?

Oder sollte ich Pear benutzen? (Pear ist doch die “Fortsetzung“ von PHPLIB oder?) :?:


Vielen Dank im Voraus
Gruß, Sandro
Last edited by Sandro on 11. June 2007 17:25, edited 3 times in total.
Sandro
 
Posts: 22
Joined: 03. October 2006 17:48

Postby KingCrunch » 09. June 2007 15:53

Wenn mich nich alles täuscht ist "Cart" bereits eine Implementierung, die du dann nur noch nutzen musst. Und was meinst du mit "was Besseres als Sessions"? Was spricht denn gegen Sessions?

PHPLib und PEAR sind meines Erachtens unabhängig. Schau dir am Besten beide Varianten mal an und entscheide dann, womit du besser klar kommst! :)
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Rene Knapp » 11. June 2007 10:59

Hey Sandro,
Ich würde dir auch empfehlen mit Sessions zu arbeiten. Alternativ kannst du aber auch Cookies verwenden oder du lässt die Waren vorübergehend in ein Text-File speichern.

Aber wie gesagt: Ich find mit Sessions wäre dein Projekt am besten zu realisieren. :o
User avatar
Rene Knapp
 
Posts: 37
Joined: 26. September 2006 14:17

Postby KingCrunch » 11. June 2007 11:26

Finger weg von Cookies bei einem Warenkorb! Die sind zu leicht manipulierbar ;) Text-Dateien gehen auch, wären aber äquivalent zu Sessions, weil diese (wenn es nicht geändert wurden) sowieso in Text-Dateien schreiben.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Sandro » 11. June 2007 11:40

Hallo KingCrunch, Rene,
danke für die Tipps. Gegen Sessions habe ich nichts, nur wollte wissen, ob man tatsächlich einen Warenkorb mit Session realisieren würde.

Dazwischen habe PHPLib und PEAR genauer angeschaut. Ich glaube ich verzichte auf beiden, und schreibe selbst eine ShoppingCart-Klasse.

Gruß, Sandro
Sandro
 
Posts: 22
Joined: 03. October 2006 17:48

Postby Sandro » 11. June 2007 12:31

wie meint ihr eigentlich mit der Text-Datei? Ich möchte, wie es üblich ist, auch ein “Merkzettel“ anbieten können.

Sollen die Daten von Warenkorb in einer Textdatei auf dem Server sein, oder muss die Text-Datei eben anstatt Cookies auf dem Client sein? (Auf dem Client zum Beispiel, so dass man dann per Javascript den Warenkorb/ Merkzettel in der Text-datei bearbeiten konnte?) Aber dann kann man die Text-Datei genau so, wie Cookies manipulieren.

Wenn die Text-Datei auf dem Server sein sollte, dann kann ich doch keinen “Merkzettel“ bei meinem Shop haben, oder?

Gruß, Sandro
Sandro
 
Posts: 22
Joined: 03. October 2006 17:48

Postby KingCrunch » 11. June 2007 15:11

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"? :D 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 :D 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 ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Sandro » 11. June 2007 17:24

Jetzt ist mir die Vorgehenweise klar geworden. Ich werde mir "Session" und "Cookies" genauer anschauen und dann kann es losgehen.

Danke für die Tipps.

Gruß, Sandro
Sandro
 
Posts: 22
Joined: 03. October 2006 17:48


Return to PHP

Who is online

Users browsing this forum: No registered users and 61 guests