Thema ansehen
 Thema drucken
Warenkorb-Script
admin
Hallo Leute,

heute möchte ich Euch ein einfaches Warenkorb-Script mit einer Artikelliste, dem eigentlichen Warenkorb und einer Warenkorb-Klassen-Datei vorstellen.
Als erstes fangen wir mal mit der Artikelliste an, diese sollte im Browser auch aufgerufen werden.

Der Name dieser Datei lautet "artikelliste.php".

Download Code  Code
<html>
<body>
<h1>Folgende Bücher können Sie bestellen</h1>
<a href="warenkorb.php?artikel=1">Genie und Wahnsinn</a><p>
<a href="warenkorb.php?artikel=2">Schizophrenie</a><p>
<a href="warenkorb.php?artikel=3">Ein Leben mit Schizophrenie</a><p>
<a href="warenkorb.php?artikel=4">Psychosen aus dem schizophrenen Formenkreis</a>
</body>
</html>




In Dieser Datei werden die Artikel und die Artikelnummern der einzelnen Artikel an die Datei "warenkorb.php" übergeben.

Da ich gerade bei der Datei "warenkorb.php bin machen wir mit ihr auch mal weiter. Hier nun der Code der Datei "warenkorb.php".

Download Code  Code
<html>
<body>
<?php
require ("Warenkorb.inc");
//starte Session, falls nicht schon passiert
session_start();
// Hole Warenkorbobjekt aus der Session
$korb = $_SESSION["korb"];
// Falls es der Erste Aufruf ist, muss zuerst
// ein neuer Warenkorb angelegt werden
if (!is_object($korb)) {
$korb = new Warenkorb();
$_SESSION["korb"] = $korb;
}
// Artikel hinzufuegen?
if (isset($artikel)) $korb->hinzufuegen($artikel);
// Artikel entfernen?
if (isset($entf)) $korb->entfernen($entf);
      
// Gesamten Warenkorb loeschen?
if (isset($loeschen)) $korb->leeren();
?>
<h1>Warenkorb</h1>
<a href="warenkorb.php?loeschen=1">Warenkorb löschen</a><p>
Sie haben bisher folgende Artikel ausgewählt:<p>
<?php
if (!empty ($korb->inhalt)) {
// zeige alle bisher ausgewählten Artikel an
foreach ($korb->inhalt as $artikel => $anzahl)
{
echo "Artikelnummer: $artikel ";
echo "<a href='warenkorb.php?entf=$artikel'>";
echo "Artikel entfernen</a><br>";
echo "Anzahl: $anzahl<br>";
}
if ($artikel == 1){
echo "Genie und Wahnsinn<p>";}
if ($artikel == 2){
echo "Schizophrenie<p>";}
if ($artikel == 3){
echo "Ein Leben mit Schizophrenie<p>";}
if ($artikel == 4){
echo "Psychosen aus dem schizophrenen Formenkreis<p>";}
else {
echo "Bisher nichts ausgewählt";
}
}
?>
</body>
</html>




Da die Datei "warenkorb.php" recht gut auskommentiert ist bedarf es wohl keiner weiteren Erklärung.

Da in der Datei "warenkorb.php" am Anfang des Codes die Datei "Warenkorb.inc" mit in den Code einbezogen wird hier nun der Code der Datei "Warenkorb.inc". Da aber Dateien mit der Endung *.inc von jedem ausgelesen werden kann, solltet Ihr die Endung *.inc.php lauten lassen. Dies ist nur ein Sicherheitsaspekt, ich habe hier darauf verzichtet.

Kommen wir nun zum Code der Datei "Warenkorb.inc" der da lautet

Download Code  Code
<?php
class Warenkorb {
var $inhalt = Array();
function hinzufuegen($artikel) {
$this->inhalt[$artikel]++;
}
function entfernen($artikel) {
unset($this->inhalt[$artikel]);
}
function leeren() {
$this->inhalt = Array();
}
}
?>




Fangen wir mal von vorne an. Wie Ihr sicherlich mitbekommen habt handelt es sich bei der Datei "Warenkorb.inc" um eine Klasse. Diese Klasse wird mit dem Befehl "class" erstellt, gefolgt vom Namen der Klasse. In unserem Fall trägt die Klasse den Namen "Warenkorb". Da die Klasse "Warenkorb" noch keine weiteren Funktionen und Eigenschaften hat definieren wir den Inhalt der Klasse noch nicht fest und lassen ihn daher variabel, da wir nicht genau wissen mit welchen Informationen die Klasse gefüttert wird. Das erreichen wir durch den Befehl "Array()". Als nächstes definieren wir eine Funktion zum hinzufügen von Artikeln. Da wir nicht wissen wieviele Artikel unsere Kunden bei uns kaufen und auch nicht wissen wie hoch die Anzahl der einzelnen Artikel sein wird erhöhen wir die Anzahl der Artikel um 1. Das wird durch den Befehl "++" erreicht, dadurch wird das Array der Variablen "$artikel" automatisch um 1 erhöht. Da unsere Kunden aber auch die Möglichkeit haben sollen einzelne Artikel zu entfernen definieren wir die nächste Funktion "Artikel löschen". Das löschen von einzelnen Artikeln erreichen wir durch den Befehl "unset". Als nächstes wollen wir unseren Kunden die Möglichkeit geben, den gesamten Inhalt des Warenkorbs zu löschen. Das erreichen wir durch die Befehle "leeren()" und "Array()". Mit diesen Befehlen sagen wir, dass der Warenkorb keinerlei Inhalt mehr hat.

MfG
Andreas
 
Web
Springe ins Forum: