Shop selber schreiben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Shop selber schreiben

    Hallo !

    Ich bin ein absoluter Neuling in Sachen Php und habe mir vor ein paar Tagen das Manual auf php.net gezogen und tlw. gelesen.
    Zu meinen Problem: Ich will ein Shop-System schreiben, und brauche da etwas Hilfe.

    1. Muss ich die Produktseiten durch Php generieren oder funktioniert es auch mit statischen Html-Seiten per Formular ?

    2. Wie speichere (Cookies oder MySql oder etwas anderes ?) bzw. sende ich dann die Daten ?

    3. Das ganze sollte bei Puretec laufen.

    Bestimmt ist die Aufgabenstellung für einen Newbie nicht sehr einfach, oder?

    Ich hoffe Ihr könnt mir da weiterhelfen

    Mit freundlichen Grüßen
    Christian Seitz

  • #2
    >>Bestimmt ist die Aufgabenstellung für einen Newbie nicht sehr einfach, oder?

    Eher nicht, wenn Du genug Zeit hast (es z.B. für Dich selber schreibst), kann es aber eine gute Lernmöglichkeit sein. Stehst Du unter Zeitdruck, wirds sehr, äh, herausfordernd!

    >> Muss ich die Produktseiten durch Php generieren oder funktioniert es auch mit statischen Html-Seiten per Formular ?

    Klar geht das auch mit statischen Seiten, aber es würde halt ein sehr einfacher Shop werden. Die Bewegungsfreiheit wäre sehr eingeschränkt (ausser Du übergibst alle Formulardaten an die nächste Seite) und nicht zuletzt macht es sich nicht besonders gut.


    >>Wie speichere (Cookies oder MySql oder etwas anderes ?) bzw. sende ich dann die Daten ?

    Ein Session-gestützter Shop funktioniert normalerweise so (oder so mach ichs zumindest :-) : Für jeden Besucher wird eine neue sog. Session erzeugt (gibt jede Menge Tutorials dazu, für den Anfang siehe "Session handling" im PHP-Manual auf php.net). Diese Session-ID (normalerweise eine x-stellige Zufallszahl, gespeichert in einem Cookie) identifiziert den Besucher eindeutig.

    Für jede Session-ID wird nun auf dem Server ein Datensatz erstellt, der u.a. auf eine Warenkorbtabelle verweist. Klickt der Benutzer nun auf einen "Zum Warenkorb hinzufügen"-Knopf, schickt PHP einen Befehl an die Datenbank nach dem Motto "Benutzer mit session-ID 123456789 hat Artikel 394 hinzugefügt". Zu Frage 1: Natürlich können die Artikel statt in einer Artikeldatenbank in einer statischen HTML-Seite stehen (etwa hinzufügen.php?artikel=Kekse zu 1.99), die Daten in einer Datenbank zu speichern bringt aber nicht nur bei der Verwaltung enorme Vorteile mit sich.

    Geht der Besucher "zur Kasse", werden alle Artikel in der Warenkorbtabelle, die die Session-ID 123456789 haben, abgerufen, aus der Artikeldatenbank werden anhand der Artikelnummern (etwa 394) die Namen, Preise etc. ausgelesen und der Endpreis errechnet. Nach der Eingabe der Kundendaten und "Bestellung abschicken" kommt der ganze Rotz in eine email (am besten zur Sicherheit auch noch in eine Datenbank auf dem Server --- kann sonst Probleme geben wenn der Mailserver des Empfängers nicht aktiv ist oder die mail sonstwie ge"bounced" wird) und wird an den Shopbetreiber geschickt.

    Danach löscht man die Warenkorbeinträge mit der Session-ID des Besuchers.

    Diese Methode, wenngleich kompliziert, hat den Vorteil, dass der Besucher sich frei bewegen kann (wenn Du das Cookie und das Ablaufdatum der Sessions richtig einstellst, kann man sogar die Site verlassen und findet beim nächsten mal seine Einkaufsliste wieder) , Du kein Problem bei der übergabe der Bestelldaten an die nächste Seite hast, Du einzelne Seiten (etwa "Sonderangebote" etc.) zur Verfügung stellen kannst usw. Du kannst damit auch Artikel in eine bestehende Webseite einbinden (etwa eine Umweltseite, die in einer Spalte links Bücher anbietet, mit direktem "zum Warenkorb hinzufügen"-Link).

    Es gibt einige Dinge zu beachten wie zum beispiel: was, wenn der Browser des Besuchers keine Cookies annimmt? etc. , aber auf die wirst Du im Laufe des Session-Handling schon stossen.




    [Editiert von pekka am 24-06-2001 um 02:14]

    Kommentar


    • #3
      1. ich bedanke mich, deine tipps haben mir schon ziemlich weitergeholfen.

      2. wird die ganze chause auch bei Puretec laufen ? (profipaket) von der Konfiguration her

      3. kann ich dann die Html-Seiten irgendwie auslagern, ich meine dass ich sie nicht in den php-code reinverwurschtel, sondern irgendwo extern lagere - und so leicht ändern kann ?

      danke !

      Kommentar


      • #4
        2,Puretec: Weiss ich leider nich. Hat da jemand ne Ahnung? Was Du brauchst ist PHP4-Unterstützung und mySQL. (Sessions gibts erst ab PHP 4).

        3,ja - mit z.B. "<? include '../shopsystem/shop.php' ?>" Kannst DU PHP-Code in HTML-Dateien einbinden. Das heisst z.B., dass Du ein HTML-"Skelett" haben kannst, in den dann serverseitig der Shop-Code eingebunden wird.










        Kommentar


        • #5
          puretec

          hi,

          ob dein puretec paket php tauglich ist erkennst du daran, dass du freie cgi´s installieren darfst. soweit ich das weiss, geht das aber erst in premium paketen.
          ansonsten hast du php version 4.??? zur verfügung.

          mfg
          schmalle
          h.a.n.d.
          Schmalle

          http://impressed.by
          http://blog.schmalenberger.it



          Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
          ... nur ohne :-)

          Kommentar


          • #6
            Also das mit Puretc sollte dann funktionieren, da das Paket freie CGI's unterstützt.

            Ich hab mich nun mal an die Sessions gewagt, aber das erscheint mir ziemlich kompliziert bisher. Das Tutorial php.net ist zu knapp.
            Vielleicht weiss mir jemand ein besseres (Pdf ?) und auch über MySql, weil ich davon überhaupt noch null Ahnung hab.

            Gruß Christian

            Kommentar


            • #7
              bessere dokus kenne ich och nit. aber ich weiss, dass du hier den leuten löcher in bauch fragen kannst :-) hilfe ist fast zu 100% garantiert.... einfach alles posten, wasde nit verstehst .... kost ja nix ...
              h.a.n.d.
              Schmalle

              http://impressed.by
              http://blog.schmalenberger.it



              Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
              ... nur ohne :-)

              Kommentar


              • #8
                Mach ich, mach ich

                Kommentar


                • #9
                  So nun hab ich mich durch den ganzen MySql-Mist gelesen und weiss trotzdem nicht was ich machen muss um:

                  1. den Spalten einer Tabelle Namen zu geben, die ich dann nachher einfach abfragen kann -> z.B. Preis

                  2. Daten in dann speichern kann.

                  ich blicke allerdings gerade überhaupt nicht mehr durch

                  Gruß Christian

                  Kommentar


                  • #10
                    den Spalten Namen geben: Das kommt gaaanz am Anfang bei der Definition der Tabellen. Dazu benutzt du am besten den phpMyAdmin, da geht das alles fast wie von selbst.

                    Um an die Datenbank von php aus ranzukommen, mußt du erst mal eine Verbindung zum MySQL-Server aufbauen: mysql_connect ('localhost', $username, $passwort);
                    Username und Passwort für MySQL solltest du von Puretec erhalten haben.
                    Anschließend noch die Datenbank auswählen, auf der du arbeiten willst: mysql_select_db ($dbname);

                    und um Werte in der DB zu speichern und (auch sortiert) wieder rauszuholen, gibt's dann den Befehl mysql_query.
                    Syntax und Beispiele gibt's etliche im MySQL-Handbuch, hier nur die wichtigsten:
                    insert into TABELLE (Spalte1, Spalte2, ...) values (Wert1, Wert2, ...)
                    zum Eintragen von Werten in die DB.

                    Zum Lesen:
                    select Spalte1, Spalte2 from TABELLE
                    dem kannst du dann noch das Schlüsselwort where anhängen gefolgt von einem Vergleich wie Spalte1=Wert1 oder Spalte1>Wert1 oder Spalte1>Wert1 and Spalte2<Wert2. Eine genaue Definition des "where" hatte ich auch mal gefunden, aber leider hab ich den Link verschmissen.
                    am Ende der Query kannst du noch Sortieranweisungen geben:
                    order by Spalte1 asc, Spalte2 desc sortiert beispielsweise nach Spalte 1 aufsteigend, anschließend nach Spalte 2 absteigend. Das 'asc' kannst du auch weglassen.

                    Naja, wenn du ein paar von den Beispielen aus der MySQL Manual Reference mal ausprobiert hast, hast du's im Ansatz sicher schon verstanden.
                    Ganz hilfreich ist auch, das select-Tool vom phpMyAdmin zu benutzen und sich mal anzuschauen, was der aus den ausgefüllten Formularen für Queries macht.

                    und vielleicht willst du ja auch mal Datensätze aktualisieren:
                    update TABELLE set Spalte2=Wert2a where Spalte1=Wert1
                    oder löschen:
                    delete from TABELLE (auch hier kann wieder ein WHERE-Block hintendran, wenn du nicht die gesamte Tabelle leerblasen willst!)
                    mein Sport: mein Frühstück: meine Arbeit:

                    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                    Kommentar


                    • #11
                      Puretec Server Timeout Problem

                      Wie groß soll die Datenbank für den Shop werden ?

                      Wir hatten eine Gaststättensuchmaschine gescriptet mit ner ziemlich großen DB dran (50.000 Einträge) ...

                      Puretech hat da probs gemacht da einige unserer Abfragen zu lange gedauert haben und deswegen gar kein ergebnis zurück kam ... erst nach dem aufsplitten der Datenbank in eine äußerst unübersichtliche strucktur lief alles wieder ...

                      Der Sever Timeout lag soweit ich mich entsinne bei 6 sec. .

                      Du bist dir sicher das du das selbst scripten magst ?

                      Es gibt doch gute Shopsysteme (z.B. Open Shop) mit geringen Lizensgebühren (openshop ca. 1000 DM) ....

                      Also wünsch dir viel Spaß beim scripten ...
                      ------- It wasn´t my script -------

                      Kommentar


                      • #12
                        Ich will die DB dazu benutzen, die Bestellungen zu formatieren bzw. auszurechnen, dazu brauch ich nur eine kleine für bis zu 50 Artikel pro Bestellung (unterschiedliche). Vielleicht gibt es da auch einen einfacheren Weg - ich bin für alles dankbar. Ich brauch halt pro unterschiedlichem Artikel 4 Daten -> Preis, Bestellnummer, Anzahl und Größe (andre Reihenfolge)
                        Das einzige Problem ist dass ich die Sites nicht im Php-Code haben will, so dass ich diese leicht und ohne großen aufwand ändern kann. Also muss ich die Eingaben über Formulare laufen lassen. Diese will ich dann in einer MySql Tabelle Speichern (als Warenkorb) den sich der Kunde dann auch betrachten können soll (mit Gesamtpreis etc.). Ich dachte mit MySql kann ich die Daten dann einfach abrufen und den Preis berechnen...
                        Ich werde hier wohl noch so einiges erfragen müssen...

                        Kommentar


                        • #13
                          Achso hab ich noch vergessen, Titus, leider weiss ich nicht was phpMyAdmin ist - aber ich wär dir für ne Erklärung dankbar...

                          Kommentar


                          • #14
                            phpmyadmin

                            PhPmyadmin is en browserbasierendes tool um ne Datenbank zu administrieren ... ich find es übersichtlicher als kommandozeile ...
                            ------- It wasn´t my script -------

                            Kommentar


                            • #15
                              Gibts zum Download z.B. auf phpmyadmin.de. Einfach runterziehen, auf den Server werfen und die Einstellungen in der config.inc.php bearbeiten (datenbankname, passwort und so).

                              Kommentar

                              Lädt...
                              X