Andreas: Warenkorb mit Sessions anstatt mit MySQL

Beitrag lesen

Hallo!

Wozu sonst wäre die Umstellung auf die Sessions gut? Ziel war doch, weniger mit der Datenbank zu arbeiten. Wenn du aber nur rudimentäre Daten in der Session hälst und im Zweifel immer wieder die Datenbank befragen mußt, was der Warenkorb in menschlichen Worten bedeutet, dann ist nicht viel gewonnen.

Das stimmt.

Allerdings soll's ja angeblich ein Datenmaximum für Sessiondaten geben. Ich kann dazu nicht viel sagen, ich habe nichts gegen ein ständiges Befragen und Befüllen der Datenbank einzuwenden - und somit dein Problem nicht. :)

Mit anderen Worten gewinnde ich Durch einen Session-Warenkorb nicht viel. oder? Außerdem müßte ich beim Eintragen auch die Daten erst aus der DB auslesen und in die Session schreiben, was schlechter ist als ein enfacher insert!

Häh? Du hast eine in der Session gespeicherte Variable. Die steht am Anfang des Skriptes zur Verfügung. Du schreibst weitere Werte in die Variable hinein. Du liest die komplette Variable für eine Ausgabe aus. Und durch das Skriptende wird der (geänderte) Inhalt der Variablen zum nächsten Skript hinübergerettet. Wo ist da das Problem?

Jajaja, hatte ich inzwischen verstanden ;-) Denkfehler von mir!

Wenn du natürlich lesens über $_SESSION zugreifst, dann solltest du auch schreibend dort die Veränderung vornehmen. Wenn das nicht möglich ist, weil du komplexe Variablen so nicht ansprechen kannst, dann nimm doch lieber die Originalvariable und überlasse das Rauspfriemeln und Abspeichern in der Session PHP. :)

Naja, da langfristig in PHP register globals ja auf off geschaltet wird, was aus Sicherheitstechnischen und performanten Gesichtspunkten zu befürworten ist(auch für langfristige Kompatibilität), stehen Sessionvariablen ja nicht mehr direkt zur Verfügung! Also muß ich duch $_SESSION darauf zugreifen, auch in Anbetracht der Tatsache, das langfristig $HTTP_SESSION_VARS abgeschaltet wird, wahrscheinlich mit PHP 5.

Also bräuchte ich auf jeder Seite

<?
session_start();
$warenkorb = $_SESSION[$warenkorb_array];
$_SESSION[$warenkorb_array] = $warenkorb;
?>

oder?

Aber alles in allem haben sich glaube ich die Vorteile des Sesion-Warenkorbes eh in Wohlgefallen aufgelöst ;-)

Wollte das nur mal ansprechen, um zu sehen, ob die MySQL-Warenkorb Lösung auch wirklich die beste ist!

Vielen Dank jedenfalls!

Grüße
Andreas