PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : shop, aber wie richtig?



alex1980
17-12-2002, 14:47
ich probiere nun seit mehreren Tagen für meine Eltern ein Shop system aufzubauen, da kein Shop den ich bis jetzt gesehen habe für diesen Bereich geeignet währe.

Es sind nur 15 Artikel, aber jeder Artikel ist in einer verschiedenen Sparte, hat also nicht die selben Eigenschaften wie ein anderer, vondaher scheidet eine MySQL Datenbank leider aus.

Ich habe jetzt alles soweit programmiert dass ich einen Artikel auswählen, die Farbe aussuchen, größe, breite ... kann, aber weiß nun nicht wie ich ihn in eine Art Warenkorb legen soll ...

Mit Cookies habe ich probiert, hatte aber oftmals Probleme wenn diese über 20kb geht.

Gibt es irgendswo eine Anleitung (egal ob Buch oder Web) wie das geht?

Ich bin für jede Hilfe dankbar.

Gaert
17-12-2002, 18:04
Frage... wieso scheidet MySQL aus?
(Mal abgesehen, dass MySQL für nen großen Shop nicht geeignet is... aber bei so nem mini Projekt reicht es voll aus - man will ja nicht mit Kanonen auf Spatzen schießen!)

Einen "Warenkorb" würde ich an deiner Stelle in als Session Variable führen.
Oder du verwendest die Datenbank!
Für jeden Artikel einen Datensatz, mit Produktnummer, Timestamp und Session ID als Zuordnung zum Kunden.

mehlvogel
17-12-2002, 23:07
Weis auch net warum mySQL ausscheiden sollte.

Warenkorbanwendungen sind eigentlich wie gemacht für Sessions (oder wars andersrum :o ) - auf jeden Fall besorg dir mal was über Sessions.

Guckst du hier (http://www.google.com/search?hl=de&ie=UTF-8&oe=utf-8&q=Sessions+Tutorial&btnG=Google-Suche&lr=lang_de)

Als Buch kann ich dir das "PHP 4 Praxisbuch" empfehlen (von Blake Schwendiman und ich glaub der FVerlag ist Franzis' ) - habs mal gesucht und:

Guckst du hier (http://www.amazon.de/exec/obidos/ASIN/3772368654/ref=ase_boardclub-21/302-9840650-5992047)

alex1980
18-12-2002, 09:54
MySQL scheidet deswegen aus, weil ich 15 Artikel habe die in 15 Artikelgruppen sind. Die Artikel haben bis auf eine Bestellnummer, eine Bezeichnung und den Preis nichts was ich in eine Tabelle werfen könnte. Ein paar haben Gewichtsangaben, ein paar andere nicht aber dafür Zugkraftangaben und so weiter ...

Miste, ich war grad im Buchlande um die Ecke, die haben nur "Go To PHP4" und "PHP De Luxe" im Lager, und über Amazon bestellen ... da sind wieder 2 Tage in's Land gegangen ...

netzmeister
18-12-2002, 10:03
Hallo,

bei 15 Artikeln lohn sich definitiv kein Datenbank basierter Shop.
Das ist nur was, falls es Dir langweilig ist.

Eine einfache Textdatei wäre da ein Alternative. Diese Daten liest Du
z.B. mit Perl aus. Da kann man tolle Sachen mit machen.

Oder mache einfach ein paar statische HTML Seiten.

Oder Du kaufst Dir einen Perl-Shop:

Fertige Lösung bei mir, ...
Beispiel: http://serveasy.de

Viele Grüße

Eicke

alex1980
18-12-2002, 12:57
Ich hab das über statische Seiten gelöst, geht auch sich den Artikel zu kunfigurieren, aber nu is das Problem mit dem Warenkorb ...
Wie ist das mit den Sessions, wenn man im Browser auf den Zurück Button klickt, sind die dann Weck?

Nen Shop kaufen, nunja, nicht mal der VShop oder der OSCommerce ... konnten die verschiedenen Variablen den Produkten richtig verwalten, bzw. es was zu schwierig beim bestellen da ich z.b. bei einem Artikel 3 verscheidene Punkte habe an denen man die Größe ändern muß, und auch dem Käufer sagen muß wo/wie er messen soll, und dafür brauch ich hald viel Platz und die vorgefertigten Scripts haben das nicht so ganz vorgesehen ...

Und kaufen ... nunja, das sind Eltern ... kennste das nicht?
Am besten alles kostenlos und vorgestern ;)

mehlvogel
18-12-2002, 13:12
Ich glaube nicht das die Session dann weg ist, da diese ja auf dem Server gespeichert wird. Genau kenn ich mich aber mit Sessions auch wieder nicht aus ;) (noch nicht)

Gaert
18-12-2002, 19:00
Hallo!

Die Session wird bei PHP auf dem Server in einer Session Datei gespeichert!
(normalerweise in /tmp )
Um die Datei zu finden, muss eine SessionID Variable entweder bei per GET oder per POST von Seite zu Seite mitgegeben werden.
Normalerweise tut PHP das von alleine indem er einfach einen Cookie beim Client anlegt. Wenn das nicht funktioniert werden automatisch <a> und <form> tags entsprechend erweitert, damit die SessionID nicht verloren geht.

Um die Session in einer Seite verfügbar zu machen muss die session mit session_start() gestartet werden.
Die Session Variablen werden in neueren PHP Versionen am einfachsten über das Array $_SESSION transportiert.

Um alles im Detail zu verstehen würde ich mal die Offizielle Doku lesen.

http://www.php.net/manual/de/ref.session.php

Für Tutorials einfach mach googeln!

alex1980
19-12-2002, 10:16
wie schreibe ich das dann nun am besten in die Session und lese das wieder aus? Ich habe für die Artikel keine Nummer oder sowas, und da sind auch individuelle beschriftungen drauf ...

z.B.

----------------------------------
|Bezeichnung | Halsband|
|Größe | S |
|Halsweite | 32 |
|Farbe | blau |
|Beschriftung | hallo du |
|Menge | 1 |
|Preis | 4,75 |
|Ges. Preis | 4,75 |
-----------------------------------

Um dies aufzustellen geht der Besucher über 5 Seiten auf denen die verschiedenen variablen auszuwählen sind, das klappt auch soweit, da ich dies über ein normales formular gehe.

Ich glaube das einfachste währe diesen Artikel in eine MySQL Datenbank zu schreiben und dem eine Nummer zu verpassen, und diese Nummer dann in die Session schreiben, oder?

mehlvogel
19-12-2002, 12:45
Wenn du die Daten in einem Array hast (zum Beispiel) kannst du auch mit



$session_data = serialize($daten_array);


Eine Variable erzeugt die den array enthält um wieder den Urspürunglichen Array zu erhalten musst du dann



$daten_array = unserialize($session_data);


machen. Du kannst natürlich auch jede einzelne Sache so in die Session schreiben:



$_SESSION["groesse"] = $groesse;
// etc


Oder gleich den gesamten Array



$_SESSION["daten"] = $daten_array;


Je nachdem wie du es magst oder wie du es möchtest.

alex1980
20-12-2002, 08:40
muß man eigendlich auf jede folgeseite "session_start();
" schreiben, oder genügt das ein mal?