Einfacher "Webshop"

Rex_Swissly

bekommt Übersicht
Guten Tag

Ich habe leider noch keine grossen Erfahrungen mit dynamischen Seiten und (Web) Datenbanken.
Ich habe zwar hier einige Bücher mit dem Thema PHP und MySQL herumliegen, aber ich weiss für das folgende Problem nicht so ganz, wo und wie ich anfangen soll. Und leider habe ich momentan einfach keine Zeit, mich durch hunderte von Seiten durchzuwühlen.

Es geht um folgendes: Ich bin an einer Webseite dran, auf der viele Bilder zu sehen sind. Die Bilder haben bestimmte Bezeichnungen (z.B. HoHugrst).
Ich möchte jetzt, dass ein Besucher, dem ein Produkt anhand des Bildes gefällt auf einen Button klicken kann und im Hintergrund, nach drücken des Buttons diese Nummer in einer Liste gespeichert wird. Schön wäre noch, dass in der Liste zu dieser speziellen Bezeichnung noch ein gewisser Text hinzugefügt wird (z.B. Holzhuhn, gross, stehend, weiss).
Der Benutzer kann z.B. mehrere Produkte anwählen. Am Schluss kann er auf "Bestellen" gehen und die angewählten Produkte werden ihm dann in einem Formular noch schön dargestellt.

Braucht man da zwingend eine Datenbank. Da sich die Bilder so gut wie nie ändern, ist es nicht nötig, diese in einer Datenbank abzulegen, sondern werden statisch einfach eingebunden. Auch die Bezeichnungen bleiben so gut wie immer fix.

Ich denke, dass wird ungefähr so ablaufen, dass nach dem Klick auf den Button, die hinterlegte Bezeichnung in einer Variablen gespeichert wird und am Schluss werden diese Variablen listenmässig ausgegeben.

Hat jemand eine gute Idee, wie ich das bewerkstelligen soll oder wie ich vorgehen soll, um das so schnell wie möglich und einfach zu lösen.

Vielen Dank für Eure Hilfe.

Gruss Rex_Swissly
 

Supernature

Und jetzt?
Teammitglied
Das klingt aber jetzt mehr nach einer Gallerie als nach einem Shop.
Was ganz am Ende des "Bestellvorgangs" geschehen soll, habe ich noch nicht so recht verstanden.
 

Rex_Swissly

bekommt Übersicht
Hallo

Der Besucher kann beim Bild auf einen unter diesem befindlichen Button drauf klicken.
Am Schluss klickt er auf den Button "Bestellen", wo er z.B. in der oberen Hälfte seine Angaben (Name, Adresse ...) ins Formular hineinschreiben kann.
Unter den normalen Feldern sieht er noch eine Zusammenfassung, was er bestellt hat in Listenform.

Gruss Rex_Swissly
 

Bullabeisser

assimiliert
Ich denke, dass Du da gut mit einem CMS mit Shop-"Aufsatz" bedient wärst.
Ich denke hier an Joomla mit osCommerce-Aufsatz.
Link zu osCommerce: Joomla CMS Downloads - Templates und Erweiterungen - osCommerce 1.0.2 Beta

Link zu Joomla: Joomla - Home

Natürlich kannst Du auch Typo3 anstelle von Joomla nehmen - reine Geschmacksache.
Link Typo3: typo3.org: TYPO3 Content Management System - Developer Resource

Mit beiden CMS (Content Management System) und dem Aufsatz "osCommerce" kriegt man einen ganz passablen Webshop hin. Und das schöne dran: alles kostenlos. Du steckst ein mal die Arbeit rein ohne PHP/SQL-Kenntnisse und hast ein lauffähiges System.
Du brauchst aber Webspace mit PHP, MySql, CGI etc. - aber auch den gibts werbefinanziert umsonst bei z.B. funpic.de webhosting - 2500 mb webspace
oder auch ohost.de 2500 mb webspace mit ftp / mysql kostenlos

Und um solche Systeme offline auf der eigenen Kiste testen zu können gibt es XAMPP, der Link apache friends - xampp

Hoffe geholfen zu haben.
 

Rex_Swissly

bekommt Übersicht
Hallo

Ich möchte kein "fertiges" System einsetzen. Das Design und der Aufbau ist im Grunde schon fix.
Ich bin überzeugt, dass es auch mit Handarbeit geht und auch ohne irgend ein Doktor Titel in Programmierung zu haben.
Den es geht ja wirklich nur um eine paar Bezeichnungen die in Variablen gespeichert werden sollten und danach noch als Liste ausgegeben werden.

Um das Ganze auch testen zu können, für das steht bei mir ein Apache Server bereit, auf dem MySQL und PHP ausprobiert werden kann.

Der Provider ist auch schon gewählt (Schweiz).

Für weitere nützliche Ratschläge wäre ich dankbar.

Gruss Rex_Swissly
 

Bullabeisser

assimiliert
Ich bin überzeugt, dass es auch mit Handarbeit geht und auch ohne irgend ein Doktor Titel in Programmierung zu haben.
Den es geht ja wirklich nur um eine paar Bezeichnungen die in Variablen gespeichert werden sollten und danach noch als Liste ausgegeben werden.

Sicher geht das mit etwas Code, der wird aber etwas kompliziert. Du mußt ja Variablen definieren für die Bildnamen - nur wieviele? 1, 10, 100, 1000 ?
1.
Man definiert erst mal ein eindimensionales Array für die Text-Variablen, sagen wir mal 100. Man belegt alle mit dem Text "leer".
Dann muss da eine Art Zähler mitlaufen, der bei Null startet, der die Variablenzahl im Array bei jedem klick um eine erhöht und der später die Anzahl Variablen bestimmt, die in der Liste ausgegeben werden. Weil die mit dem Text "leer" brauchen ja nicht ausgegeben zu werden.
2.
Es muss abgefangen werden, wenn z.B. ein Bild mehrfach angeklickt wird, sonst wird das hinterher in der Liste auch mehrfach angezeigt.
3.
Was machst Du, wenn der "Klick-Kunde" im Browser auf "zurück" klickt - in dem Fall sollte mann ggf. ne Abfrage bringen können, ob das zuletzt angeklickte Bild wieder aus der Liste genommen werden soll (oder so ähnlich, ich kenne den Aufbau Deiner Website nicht).

Das sind jetzt nur ein paar Dinge, die mir aus die Schnelle einfallen. Es gibt noch wesentlich mehr "krumme Hunde", die da auftauchen werden.
 

Threepwood

UnBunt.
Möglichkeit A:

-Tabelle (mySQL) mit temp. Werten füllen (key: IP des Benutzers+Cookie+eindeutige Auftragsnummer bei Bestellung)
-Pro Produkt (Bild) eine Reihe schreiben, Prüfung von Doppelten (Vorsicht: zB 2x dasselbe Produkt/Anzahl der Produkte)
-Beim Bestellvorgang via key alle Produkte aus der DB auslesen, nach Absenden der Best. diese Tabellenreihen per Tag für benutzt erklären (aber nicht löschen -> statistische Auswertung, Rückabwicklung, etc), Auftragsnummer+Produkte in die Bestellbestätigung einlesen, fertig

Möglichkeit B:
IP+eindeutige Auftragsnummer des Benutzers in einen Cookie/Session, Produkte+Anzahl in den Cookie/die Session, am Ende einlesen und Bestellvorgang abschliessen. Auch hier wieder IP+Auftragsnummer mit in die Bestellbestätigung.

Bei beiden latürnich noch die Standards wie Name, Adresse, Zahlungsart, Blah und Blah. Das Abfangen von Doppelungen ist reines Pipifax, am schönsten noch mit Abfangen: "Produkt bereits hinzugefügt. Weiteres Exemplar hinzufügen?". Fertsch.
Sollte tatsächlich auch ein lernwilliger Nichtprogrammierer hinkriegen.
Allerdings wirds in Sachen SSL/Verschlüsselung in Beziehung zu Privat-/Bankdaten schon schwieriger ("Sichere Abwicklung"). Nicht zu vergessen diverse Validierungen von zB Emailadresse, Postleitzahl, Bankdaten (Gültigkeitsprüfungen via RegEx).

LG
 

Bullabeisser

assimiliert
Hi Treepwood,

danke für die freundliche Unterstützung. Vielleicht kapiert Rex_Swissly jetzt, was er da vor hat. Das Ding ist nämlich nicht so einfach, wie es sich anhört.
Das mit der IP hab ich in der Schnelle mal glatt übersehen - ja, ja, - wenn mehrere Besucher gleichzeitig zugreifen :D

Rex_Swissly:
Das wird doch ein größeres Projekt - oder doch Open Source? :D
Zumindest arbeitet die Open Source einwandfrei. Und da lasse ich auch nicht gelten, dass Dein Outfit schon fest steht - man kann die CMS-Systeme samt Shop anpassen wie die sprichwörtliche "eierlegende Wollmilchsau".
Bsp.: 's Ländle-Lädle

...wurde mit osCommerce erstellt - und nein: weder verschwägert noch sonstwie verwandt
 

Rex_Swissly

bekommt Übersicht
Danke für die Antworten.

Ich denke, das werden zwischen 20 bis 30 Nummern werden. Also absolut im kleinen Rahmen. Und das da mal zwei oder drei Besucher gleichzeitig draufklicken ist sehr unwahrscheinlich. Die Homepage wird eher nur einen seehhhrrrr kleinen Kreis an Interessenten ansprechen.

Aber ich bleibe dabei. Ich möchte das in Handarbeit machen, so kann ich dabei auch noch einiges lernen.

Gruss Rex_Swissly
 

Threepwood

UnBunt.
Ich mein das durchaus positiv und ernst, und dennoch wollte ich damit Bullabeisser unterstützen. Wichtig ist, Rex, dass es nicht auf die Anzahl der Produkte umlegen kann, was du vorhast. Der Arbeits- /Lernaufwand ist bei EINEM Bild exakt derselbe wie bei 3000. Weil? Richtig. Die Skripte, die du programmieren musst, unterscheiden das nicht. Eine Funktion wird halt nur öfter oder nur eben seltener aufgerufen - in Sachen Sicherheit, Funktion etc nimmt sich das aber nix. In der Menge ist das absolut skalierbar (OK zugegeben, bei 100k Zugriffen/Stunde muss zusätzlich bzgl Speicherlast, Bandbreite etc etc etc optimiert werden).

Dennoch schön, dass du es machen und lernen möchtest! Und lernen wirst du dabei verdammt viel, wenn du es richtig machst, von Anfang an.

Vorweg einen meiner Meinung nach wichtigen Tipp:

-Arbeite mit einem Plan, erstelle eine Liste der Funktionen, die das Ding erfüllen soll. Egal wie "klein" oder "unwichtig" diese teilweise sind.

-Mache dir immer Notizen, welche Variablen WIE und WO verarbeitet, gespeichert oder verworfen werden, achte darauf, eine "Namenskonvention" einzuhalten

-Alle Usereingaben (POST, GET, COOKIE) IMMER prüfen auf Validität, sprich: darf ein Eingabefeld für Zahlen überhaupt Buchstaben/Sonderzeichen übergeben

-Alle Usereingaben bzw. dessen Variablen IMMER am Anfang des Scripts behandeln, und grundsätzlich nicht mit Globalen Variablen arbeiten

-Nimm dir Hilfe (gerne auch hier!), wenns hakt. Besser 10mal nachgefragt, als einmal "wird schon passen". Denn genau das kann dir den Kopf kosten, finanziell wie auch rechtlich.

Ich könnte noch weiterschreiben, aber mir ist klar, dass dir jetzt schon einige genannte Dinge völlig neu sind, dir erst weit später begegnen, oder erst dann sinnvoll erscheinen, wenn du gesehen hast, warum. Das sollte also erstmal reichen, auch wenn bestimmt noch jemand anders Nützliches hinzufügt.

Klar, es ist "nur ein kleiner Shop", es ist nur "das eine oder andere Formular", aber genau das sind meist die Schwachpunkte, wenn über Cross-Site-Scripting Datenbanken gekapert, Webseiten gelöscht, Benutzerdaten geklaut, und/oder der komplette Webserver ungeplant zur Spamschleuder von tausenden Spammails täglich mutiert. Natürlich ist das auch der "worst case", und wird dir womöglich nicht passieren. Dennoch ein kleiner Hinweis: ausgerechnet ungesicherte Gästebücher (jaja, auch die mit 1 Eintrag pro Monat) wurden ohne zB Captcha-Verfahren zu Spamming missbraucht. Mailformulare ebenso - da brauch ich gewiss nicht ins Detail gehen.

ABER: hab trotzdem Spass daran, es macht nunmal Laune, "so einfach" etwas so praktisches selbst zu schreiben. Nur bitte beherzige den einen oder anderen Rat, wir meinens nur gut. Und Hilfe kriegste jederzeit (wenn du mitwirkst ;) ).

Viel Spass!

LG
 
Oben