3 Stimmen

Speicherung der Artikel des Warenkorbs in Cookies und Datenbank

Ich arbeite an einer E-Commerce-Website. Wenn der Benutzer nicht auf meiner Website angemeldet ist und auf die Schaltfläche "Jetzt kaufen" klickt, möchte ich diese Informationen sowohl im Cookie als auch in der Datenbank speichern. Die Tabelle für den Einkaufswagen sieht wie folgt aus

SHOPPING_CART 
(
     sessionid   int(10), 
     itemid      int(10), 
     quantity    tinyint(10) unsigned
     date_added  datetime
);

Primärschlüssel ist: (sessionid, itemid)

Wenn der Benutzer den Browser schließt, sollten auch die Artikel des Warenkorbs erhalten bleiben. Meine Frage ist nun die folgende:

  1. Wenn der Benutzer nicht auf meiner Website angemeldet ist, auf welcher Grundlage sollte ich den Benutzer identifizieren?
  2. Soll ich die Informationen unter Verwendung der IP address ? Wenn ja, WIE? In diesem Fall sessionid in der oben genannten Tabelle wäre die IP-Adresse des Benutzers. Richtig?
  3. Sollte ich eine temporäre Sitzung für jeden einzelnen Benutzer erstellen, der der meine Website besucht, eine temporäre Sitzung erstellen und die Informationen dann speichern? Wenn ja, WIE?
  4. Wie können die Artikel des Warenkorbs erhalten bleiben, auch wenn der Benutzer das Browserfenster schließt? Soll ich die Daten aus der Datenbank abrufen oder Cookie?
  5. Gibt es eine andere bessere Methode zum Speichern und Abrufen von Informationen?

Anmerkung1 : Ich kann viele verfügbare Shopping Cart Software/Codes/Bibliotheken verwenden. Aber ich möchte wissen: Wie kann man den Nutzer identifizieren? Und Speicherung/Abruf von Daten.

Anmerkung2 : Die Preise der einzelnen Artikel, Bestell- und Versandinformationen werden in verschiedenen Tabellen gespeichert.

7voto

JB Nizet Punkte 654813
  1. Alles, was Sie tun können, ist, eine eindeutige gefälschte Identität für den Benutzer zu erstellen
  2. Nein. Mehrere Benutzer können die gleiche IP-Adresse haben, und ein einzelner Benutzer kann seine IP-Adresse ändern.
  3. Ja. PHP erstellt eine Sitzung für Sie, sobald Sie darum bitten, eine Sitzung zu starten. Sie müssen eine Identität mit dieser Sitzung verknüpfen. Verwenden Sie einfach eine Zufallszahl oder einen UUID-Generator oder etwas Ähnliches, um etwas Eindeutiges und nicht leicht zu Erratendes zu erzeugen. Dann speichern Sie die Identität in einem Cookie, so dass Sie, wenn der Benutzer einige Zeit später zurückkommt, seine Identität erneut mit der neuen Sitzung verknüpfen können.
  4. Ich würde einfach die Identität in einem Cookie speichern. Ein Cookie enthält nur eine kleine Menge an Informationen und kann vom Benutzer geändert werden, ohne dass Sie es merken.
  5. Wenn sich die Benutzer nicht anmelden, sehe ich keine andere Möglichkeit.

1voto

bavo Punkte 389

Das Einzige, was Sie tun müssen, ist, die Sessionid in einen Client-Cookie zu setzen. Wenn ein Kunde zurückkommt und ein Sessionid-Cookie vorlegt, aktualisieren Sie Ihre Einkaufswagen-Tabelle mit seiner neuen Sessionid (und setzen die neue Sessionid in das Cookie).

  1. Sitzung (dafür ist sie gedacht)
  2. no
  3. vorübergehende Sitzung"?
  4. der Wagen ist in der Datenbank
  5. Inwiefern besser? sicher? robust? benutzerfreundlich?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X