| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Erfahrener Benutzer Registriert seit: 16.05.2004
Beiträge: 369
![]() | Hallo Also ich glaub dir fehlt es einfach an den Grundlagen. Also.... 1.) Hängt davon ab wie du es machen willst. Viele Shopsysteme verwenden dazu Javascript und speichern die Produkte in ein Cookie/session um es dann mit PHP einzulesen und einzutragen/auszugeben, da dort nicht immer die Seite neu geladen werden muss wenn es etwas neu eingetragen wird. 2.)Wie gesagt wenn du es mit Javascript machst onClick und mit PHP musst du einfach die Daten in der URL mitgeben z.Bsp: [php]<a href="eintragen.php?produkt_id=155"[/code] 3.) Du machst in der eintragen.php einfach eine if Abfrage. z.Bsp: mit einer DB Code: if(!in_array($produkt_id, $_SESSION['produkte'])){
// falls nicht eintragen
}
5.) Das kannst du auch dazu in der eintragenphp machen. einfach Code: $endpreis = $preis*$menge; Aber schau dir lieber zuerst mal das an: Schattenbaum Arrays Sessions Gruß SimonErich
__________________ Der G-Translator |
| |
| | ||||||||
| Erfahrener Benutzer Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse: Fortgeschritten ![]() | [edit]...oh, da ware einige schneller...[/edit] Hi "lessi_tresor" und Herzlich Willkommen auf phpfriend.de Du willst es aber wissen! Viele Fragen, für die man ziemlich ausholen müsste. Mal sehen... Zitat:
würde dahinter ein Skript vermuten, dass deine Shop-Anwendung aufsetzt/installiert. Die Smarty-Pfade gehören eigentlich in die Konfigurationsdatei. Von daher würde ich hier einfach require config.php; schreiben. Zitat:
Instanz davon in eine Session. Bin grad ein wenig ratlos, wie ich das auf deinen (vermuteten) Kenntnisstand runterbrechen könnte. Für den Anfang tut es vielleicht ein einfaches Array, dass dann befüllt vielleicht so aussähe: PHP-Code: würde bedeuten: 1 Artikel mit der Nummer 42 ist drinnen und 5 mit der Nummer 99. Für die verschiedenen Funktionen des Warenkorbs schreibst du dann jeweils eine Funktion, der du das Warenkorb-Array und die weiteren benötigten Parameter übergibst. Funktionen wären z.B. add_product(), remove_product(), update_amount() etc. PHP-Code: Parameter erhält hier einen Defaultwert 1. Wird er also nicht mitangegeben, wird jeweils genau ein (weiteres) Produkt in den Warenkorb gelegt. In der Funktion wird ggf. erstmal ein Feld für diesen Artikel angelegt (mit der Mengenangabe 0) und dann der Amount-Wert hinzugezählt. [1] http://php.net/manual/en/functions.a...s.by-reference Zitat:
setzen, der dann auf deinem Server ausgeführt wird. Du musst dir selbst Parameter überlegen, die du an den Link hängst, diese dann im Skript auslesen und die entsprechende Aktion durchführen. Soll der Link z.B. so aussehen: index.php?action=add_product&product_id=42 ...dann kannst du diesen etwa so verarbeiten: PHP-Code: Das wirft natürlich 2 Fragen auf: 1. Wo wird geprüft, ob das Produkt überhaupt existiert (und dann z.B. in der angegeben Menge verfügbar wäre)? 2. Wo und wie wird denn $basket hier gesetzt? Für Ersteres kannst du z.B. auch wieder entsprechende Funktionen schreiben (is_available() etc.) und die dann aus den action-Funktion heraus aufrufen. Wobei weiter die Frage folgt, wie du mögliche Fehler (not available) aus der Funktion zurückgibst und wer diese dann verarbeitet/wie darstellt. Für Letzteres musst du eben eine Session aufbauen. Hierzu wird auf dem Server eine Datei mit einer bestimmten ID abgelegt und mit den Daten bestückt und diese ID wird entweder in ein Cookie gespeichert und somit vom Benutzer bei jedem (Folge-)Aufruf an den Server mitgeschickt oder jedem Link, jedem Formular, jeder Weiterleitung als Parameter angeklebt. Das macht PHP allerdings alles fein automatisch, siehe hier[2]. [2] http://php.net/manual/en/ref.session.php Zitat:
Zitat:
Zitat:
Gruß aus Kassel, Basti PS: Zitat:
Das Template müsste "product_detail.tpl" oder so heißen und jedes beliebige Produkt darstellen können. Natürlich kann man dann noch anhand irgendwelcher Kriterien weiter differenzieren und Templates (Views) für bestimmte Klassen anlegen, aber der Emmentaler braucht sicher kein anderes Template als der Greyerzer oder der Appenzeller. Andernfalls bräuchtest du eigentlich keine Templates mehr. | |||||||
| |
| | |
| Neuer Benutzer Registriert seit: 07.03.2006
Beiträge: 6
![]() | @Basti Wat'n Glück das es Leute wie dich gibt... War schon fast am Verzweifeln... 1. Frage. Was kommt jetzt in die einzelnen Seiten der Artikel ? werden da nur die Variablen definiert und dann per $_POST, $_GET oder $_REQUEST an die nächste Seite versendet ? sprich: Code: session_start(); $menge = $_SESSION['menge'] = 1; $artnr = $_SESSION['artnr'] = 12; $bez = $_SESSION['bez'] = schrippen; $preis = $_SESSION['preis'] = 0.25; Code: <img=src...> 2. Frage. Oder kommt die Klasse Warenkorb in jeden Artikel ? Code: <?php
session_start();
$menge = 1;
$bez = Edelsalamie;
$preis = 1.99;
$besch = '80 Gramm';
class warenkorb
{
var $artikel;
function add_artikel ($menge, $bez, $preis, $besch)
{
$this->artikel[$bez] += $menge;
}
}
?>
Oder soll der ganze Quelltext den du gepostet hast in jeden Artikel? Hab's so verstanden das so in etwa mein Warenkorbscript aussehen müsste um die session auszuwerten... Richtig? 4. Frage Die Menge steht in einem Textfeld (der User soll den Wert verändern können)... geht das überhaupt, wenn ich die Menge als Variable so statisch definiere ? 5. Frage Muss ich session_start(); eigentlich in jede Seite schreiben um die session_id zu übergeben? 5. Frage Darf ich dir die url der Problemseite mal per pn schicken, dass du dir mal ansehen kannst wie das ganze aussieht ?[/code] |
| |
| | |||||||
| Erfahrener Benutzer Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse: Fortgeschritten ![]() | Zitat:
Zitat:
Zunächst definierst du einen weiteren action-Parameter der dir anzeigt, dass der Benutzer einen Artikel sehen möchte, z.B. action=show oder so. Diesen fängst du dann auch in der switch-Abfrage als weiteren Fall (case) ab und bindest dort z.B. ein Skript show.php ein. Dieses hat den Job, de Daten des gewünschten Artikels aus der Datenbank auszulesen und diese einem Smarty-Template zuzuweisen. Du setzt also (neben dem action-Parameter) nur die ID eines Artikels in den Link. Damit ist ja auch schon alles gesagt, was der Benutzer möchte: "Zeig mir den Artikel Nr. 42". Mit der Session hat das hier nichts zu tun, denn diese enthält vorerst nur den Warenkorb (später dann Benutzerdaten, Bestellinfos etc.). Zitat:
Wenn du es gleich gescheit machen magst, dann legst du auch für deine Artikel eine Klasse an. Die muss zunächst nur eine Methode (Funktion) besitzen, der die ID des Produktes übergeben wird und die anhand dieser die Produkt-Daten aus der Datenbank ausliest und in die Klassenvariablen (Attribute) kopiert. Die dürften wohl erstmal 1:1 den Spalten deiner Datenbanktabelle entsprechen. Aber das ist hier wahrscheinlich erstmal too much. ...oh, mir kommt grad: Hast du überhaupt eine Datenbank eingerichtet, schonmal damit hantiert? Zitat:
Also: Du hast ein zentrales Skript (z.B. index.php). Und das ist letztlich das, das ich hier gepostet habe. An dieses Skript übergibst du verschiedene Parameter. Anhand dieser Parameter prüft das Skript, was der Benutzer möchte und bindet hier einen Code ein, um Daten in der Datenbank oder in der Session wie z.B. deinen Warekorb zu verändern und entscheidet daraufhin, welche Inhalte der Benutzer ausgespuckt bekommen soll und stellt diehierfür nötigen Daten zusammen und gibt das alles aus. Dass heißt also, dass es kein Skript pro Artikel gibt, sondern ein Skript, dass alle Artikel anzeigen kann und das eben z.B. durch den Parameter action=show eingebunden wird und durch den Parameter id=... erfährt, welcher Artikel angezeigt werden soll, dessen Daten er sich in dem Moment dann aus der Datenbank holt. Zitat:
[qute] 5. Frage Muss ich session_start(); eigentlich in jede Seite schreiben um die session_id zu übergeben? [/quote] Wie gesagt: "Seiten" gibt es nicht mehr! Sie sind lediglich das dynamisch erzeugte Produkt deiner Webanwendung. Es gibt Skripte und in meinem Beispiel hier gibt es nur ein zentrales Eingangsskript bei dem sämtliche Anfragen einlaufen. Dort wird auch die Session gestartet. Aber ansonsten stimmt es: Du müsst in jedem Skript, be dem vom Benutzer direkt Anfragen engehen session_start() ausführen und die Session-ID auch korrekt weitergeben. Andernfalls verliert der Benutzer die Session unterwegs. Sozusagen... Aber, mit einem zentralen Eingangsskript kannst du dir das sparen. Hier reicht ein einziges session_start(). Zitat:
Übrigens: Das hört sich bei dir nach einem konkreten Projekt an. Die Geschichten, in die du dich hier gerade einarbeitest sind erstmal nur Basics. Um einen Online-Shop zu programmieren braucht es aber vor allem das Know-How, die Anwendung sicher zu machen, schließlich können Angreifer hier großen Schaden anrichten. Und dazu sollten die Gundlagen natürlich absolut sitzen - andernfalls ist es schwer, sich überhaupt verschiedene Angriffsvektoren vorstellen zu können. Ich will dich weder entmutigen noch irgendein Elite-Bild oder sowas in der Art rausstellen. Nur eben auf den Punkt aufmerksam machen, dich verunsichern und dir raten, das Ding nicht in den Einsatz zu schicken, bevor du dir nicht (wieder) sicher bist, dass es den üblichen Angriffen standhält. Basti | ||||||
| |
| | |
| Erfahrener Benutzer Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse: Fortgeschritten ![]() | Hab den Link von dir bekommen. Kann dazu aber auch nicht mehr sagen. Höchstens den Tipp, dich bei deinem Anwalt oder zumindest im Netz (z.B. die letzten Urteile) zu informieren, welche Angaben du machen must, um dir nicht eine teure Abmahnung zu bescheren. Hier mal ein Link: http://www.internetrecht-rostock.de/...-abmahnung.htm Basti |
| |
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| seriöses Job-Angebot-> fertiges Screendesign, Shop + Admi | AWBusiness | Beitragsarchiv | 0 | 27.04.2008 21:06 |
| Shop | Zergling-new | Off-Topic Diskussionen | 4 | 17.04.2008 17:19 |
| Shop Service - wie umsetzen? | greg | PHP Tipps 2006 | 1 | 07.05.2006 14:55 |
| Geht das auch einfacher? | PHP Tipps 2006 | 1 | 17.04.2006 09:16 | |
| Smarty.php Error beim OOS Shop | PHP Tipps 2005-2 | 3 | 13.07.2005 13:54 | |
| Progger gesucht für Shop System | Beitragsarchiv | 8 | 04.07.2005 19:33 | |
| [Erledigt] Shop - Technischer Background | PHP-Fortgeschrittene | 5 | 18.04.2005 14:25 | |
| Shop bzw. Warenkorb - Framework | El Barto | Beitragsarchiv | 7 | 27.01.2005 19:24 |
| Shop in PHP | PHP Tipps 2005 | 4 | 07.01.2005 23:09 | |
| Preis in einem Shop (Computer-Konfigurator) aktualisieren | PHP Tipps 2004 | 10 | 27.09.2004 14:33 | |
| pHp Shop in Homepage einbinden !!! ABER WIE ??? | PHP Tipps 2004 | 1 | 15.08.2004 19:23 | |
| erkennen ob ein User in einem Shop eingekauft hat. | Filewalker | PHP Tipps 2004 | 3 | 27.06.2004 20:38 |
| shop im frame problem (ie vs mozilla??) | PHP-Fortgeschrittene | 1 | 15.06.2004 02:20 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| einfacher shop php, einfacher php shop, einfacher webshop php, einfacher shop script, einfacher shop in php, webshop artikel auslesen, keine artikel in den warenkorb speichern, wenn diese in der datenbanktabelle schon vorhanden sind, einfacher php onlineshop, einfacher shop, php datenbank auslesen preis kunde artikel übergeben, einfachster php shop, script artikel übergabe an warenkorb, einfacher php webshop, php einfacher webshop, einfacher webshop quelltext, einfacher shop mit php machen, einfacher shop code, fertiges warenkorbscript, einfacher schop javascripte, session in warenkorb script schreiben, einfacher webshop mit php beispiel |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.