Warenkorb bzw. LoginBereich eines OnlineShop

Dieses Thema im Forum "Webentwicklung" wurde erstellt von GaYlORd, 31. Mai 2007 .

Schlagworte:
  1. 31. Mai 2007
    Servus!

    Ich versuche mich gerade darin einen OnlineShop zu schreiben.
    Ansich läuft alles wunderbar, aber ich weiß noch nicht soganz wie ich das Ganze mit dem Warenkorb realisieren soll.
    Nur, weiß ich jetzt nicht wie ich die Artikel, die im Warenkorb liegen sollen, nur temporär speichern kann.
    Mein LogIn-"System" läuft mit Sessions.
    Und in der datenbank db_user, werden eben die ID, Session, Username, Adresse, etc... gespeichert...

    Soll ich dann wenn er nen Artikel in den Warenkorb legt, in eine neue tabelle db_wk, die produktID und die Session und ID des Users speichern lassen und bei einem Kauf das ganze in db_gekauft einspielen lassen, oder gibt es da bessere wege?
    "db_" ist immer eine DAtenbank in MySQL.

    Würde gerne wissen, wie ihr das machen würdet!
    Und möchte nicht hören, dass es auch Shop-CMSe gibt...ich mag mir ein kleines ShopScript selber schreiben!!

    gruß

    gl
     
  2. 31. Mai 2007
    AW: Warenkorb bzw. LoginBereich eines OnlineShop

    wie gesagt im icq mit javascript, ist das sehrwarscheinlich leichter/besser.

    aber wie du schon geschrieben hast.

    alles in eine datenbank reinlegen lassen, und mit dem user identifizieren lassen sprich wenn es kein login gibt, beim aufruf nen cookie schreiben lassen, der ne user id hat.

    wenn was in den warenkorb gelegt wird, wird ne tabelle angelegt, mit der id, und den warenid's.

    das ganze wird dann einfach nach vollendetem kauf gelöscht, oder nach einer bestimmten zeit, die du festlegst.

    so würd ich das ganze machen.
     
  3. 31. Mai 2007
    AW: Warenkorb bzw. LoginBereich eines OnlineShop

    du kannst doch ganz einfach die session benutzen.
    Also
    $_SESSION['ware1'] = "irgendwas";
     
  4. 2. Juni 2007
    AW: Warenkorb bzw. LoginBereich eines OnlineShop

    Hi
    Wie Ktm123 schon gesagt hat, mach es mit Sessions.
    Du kannst z.B: ne Tabelle machen "Warenkorb" dort werden die Artikel eingetragen, die jemand in den Warenkorb legt und dazu schreibst du noch die Session Id des Users in die Tabelle. Beim warenkorb anzeigen, liest du einfach alle Artikel mit der Session Id des Users aus der Tabelle aus.
    Ich hoffe du verstehst was ich meine ^^
    lg
     
  5. 2. Juni 2007
    AW: Warenkorb bzw. LoginBereich eines OnlineShop

    Sind die Produkte nur einmalig vorhanden!? Also wenn du dir sicher sein kannst, dass die session nicht gestohlen wird, mach es mit sessions. Würde ich auch sagen .... ich persönlich würde mich aber noch nicht an saufen rantrauen, ich stelle mir dazu zu hohe ansprüche für datensicherheit etc ... ohne Verschlüsselung über RSA o.Ä. würde ich da nicht so gerne dran gehen.
     
  6. 3. Juni 2007
    AW: Warenkorb bzw. LoginBereich eines OnlineShop

    also ich würde das ganze mit cookies regeln. ich nehme mal an, dass jeder der angebotenen artikel in dem shop eine eindeutige ID haben wird. dann würde ich einfach in ein cookie "warenkorb", getrennt durch ein ";", die IDs der waren speichern. später kannst du die IDs ja wieder rausescapen. das hat halt den vorteil, dass man den warenkorb-inhalt nicht verliert wenn man mal kurz den pc ausmacht und dass die datenbank nicht so sehr belastet wird.

    greez myth
     
  7. 3. Juni 2007
    AW: Warenkorb bzw. LoginBereich eines OnlineShop

    Mh den Cookiemechanismus würde ich persönlich so nicht benutzen, denn diese sind leichter zu stehlen als Sessiondaten und z.B. Stefan Esser empfiehlt für solch ein Speicherung auch den Sessionmechanimsmus, denn dieser speichert die Daten auf dem Server und minimiert so die Risiken. Wenn man hier, wie ich oben bereits andeuete, den Sessionmechanismus so weit wie möglich absichert ... da der warenkorb für den Einkaufsprozess relevant ist könnte er auch, wenn er später aufrufbar sein soll, falls man kurz vom Rechner weg war, den direkt datenbank basiert führen und/oder die session lifetime hochsetzen.
     
  8. 3. Juni 2007
    AW: Warenkorb bzw. LoginBereich eines OnlineShop


    erstmal danke.
    Joa, aber die Sicherheit sollte doch schon um einiges erhöht sein, wenn ich die sessionID nicht über GET laufen lasse.
    Wird des so extrem ausgenutzt??
    Das wird jetzt kein riesen Monstershop, bzw. noch nicht.
    Es sind knapp 4000 Artikel drin, alle haben eine eindeutige Artikelnummer und ne ID.

    Cookies möchte ich nur ungern verwenden.
    Aber über die Sicherheit hab ich mir no net allzu große Gedanken gemacht...
    Wie kann man am besten die Sessions "verschlüsseln" und sicher laufen lassen?
    Könnte man die theoretisch mit md5 in die Datenbank speichern lassen und so wieder auslesen oder is das zu datenbank lastig oder geht das überhaupt net!^^

    gruß

    gl
     
  9. 3. Juni 2007
    AW: Warenkorb bzw. LoginBereich eines OnlineShop

    Also bei normaler jedoch aktueller Version des webservers wird die SID nicht an die URL angehängt, dies ist die Fallback-Lösung des Sessionsmechanismus, normalerweise wird die SessionId als Headerangabe des HTTP - Protokolls mitgeschickt und über die SessionId wird dann die temporäre Datei angesprochen.
    Beim Sessionmechanismus ist wie gesagt die Gefahr, dass die Session geklaut wird, passiert in dem Fall so, dass der Angreifer die SID einfach in seinen Cookie oder in seine URL einsetzt (Unter gewissen Umständen ist die Session dann geklaut). Über php.net/sessions erfährst wie du den Sessionmechanismus abhärtest, also keine SID in der URL etc. Zusätzlich könnte man sich einen Algorithmus überlegen wie die man eigene noch bessere SessionIds generiert.
    SessionIds müssen also immer einmalig sein und dürfen nur von einem User benutzt werden.
    Die andere "Gefahr" bei Sessions ist, dass bei einem Sharedwebserver andere Mieter über schlecht eingestellte Befugnisse des Systems den SessionOrdner "hacken" und die daten auslesen, aber das sollte auch schon minimiert werden können, in dem man per hand einfach einen anderen ordner, außerhalb des jeweiligen DOCUMENT_ROOT, angibt und hier die zugriffsrechte ordentlich konfiguriert sind. Dies passiert aber normalerweise nichtmehr, dass ein Hoster das falsch einstellt.

    Be der Session kommt also nur die SID vom Users, bei Cookiedaten kommt alles vom User und läßt sich manipulieren, hacken etc .... kannste dir ja überlegen was dann sicherer und angenehmer ist ...

    PS: Also php.net/sessions sollte auch deine restlichen Fragen beantwortet, bei session.name kannst du zum Beispiel PHPSESSID umbenennen mit dem session.save_handler kannst su bestimmen wie die session gespeichert wird, du könntest auch ne klasse schreiben was dir md5 Funktionalitäten bei Sessions gewährt. Das letzte ist aber glaube ich nicht nötig weil die session daten auf dem server normalerweise nicht ausgelesen werden können.

    SSL wäre eigentlich auch sinnvoll, und wenn das nicht zur verfügung steht würde ich persönlich RSA benutzen und n hmac_md5 login.
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.