Einsendeaufgabe zu Studienheft PHP 2

- PHP – Fortgeschrittene Funktionen und Bibliotheken -

Sie werden mit den folgenden Aufgaben den Webshop mit Warenkorb-Funktionalität weiter verbessern. Ihre Lösungen sollten Sie – wie beim ersten PHP-Heft – auf den Webspace des Online-Lernsystems hochladen. Ergänzend zu den PHP-Dateien, sollten Sie eine Beschreibung Ihrer Lösung und die Angabe Ihrer Webspace-Adresse einschicken.

Zunächst eine kleine Zusammenstellung der bisherigen Dateien der Shop-Applikation:
Artikel.inc – Die Artikel-Klasse
artikeldaten.xml – Nummer, Name und Preis der angebotenen Artikel
artikelliste.php – Liest die Artikeldaten in ein globales Array namens $art
artikel.php – Stellt die Bestellseite dar
Warenkorb.inc – Die Warenkorb-Klasse
warenkorb.php – Stellt den Inhalt des Warenkorbs dar

Frage 1

Schaffen Sie eine Administrations-Seite, die passwortgeschützt ist.
Diese Seite soll zunächst nur die Funktion anbieten, eine Artikeldatei im XML-Format hochladen zu können, die dann die alte Artikeldatei ersetzt.

HIER der Link zum Admin-Bereich.

Frage 2

Schreiben Sie ein neues Skript „bestellung.php“, das über einen Link auf der Warenkorbseite aufgerufen werden soll.
Das Skript soll die Bestelldaten in einer Datei bestellnung.xml“ im folgenden XML-Format abspeichern:

<bestellung>
<artikel nummer=“1001“ anzahl=“3“ />
<artikel nummer=“3003“ anzahl=“1“ />
</bestellung>

Außerdem soll der Warenkorb nach Bestellung geleert werden

HIER der Link zum Bestell-Bereich.

Frage 3

Verbessern Sie die Datei „artikelliste.php, die bisher die XML-Datei „artikeldaten.xml“ parst. Das Parsen soll über eine Klasse „Artikelparser“ gehandhabt werden.
Verwenden Sie die folgende Vorlage der Klasse als Hilfestellung:

<?php
include_once („Artikel.inc“);
class Artikelparser {
  /* Hier muss die XML-Datei eingelesen werden
      und die Eigenschaften der Klasse definiert werden */

  function Artikelparser($datei) {
    // Initialisieren des Artikelarrays
    $this->art = Array ();
    /* Hier muss die XML-Datei eingelesen werden
       und die Parservariable kreiert werden */

    // Die nächste Funktion dient dazu, dass der
    // Parser nicht globale Funktionen
    // aufruft, sondern Methoden dieser Klasse.
    xml_set_object ($parser, $this);
  
    /* Hier müssen die Handler definiert werden
       und der Parservorgang gestartet werden. */
    }
  /* hier müssen die Handler Funktionen definiert
     werden
  function get ArtikelArray () {
    return $this->art;
  }
}
?>

Denken Sie an das Erzeugen eines neuen Objekts vom Typ „Artikelparser“ in der Datei „artikel.php“. Anpassen müssen Sie dann noch die foreach-Schleife, sodass Sie auf Attribute der Klasse zugreifen.

HIER der Link zum Bestell-Bereich.
Die Quelldateien zu diesen Einsendenaufagben sind HIER zu finden.