|
Implementieren Sie einen Webshop mit den unten angegebenen Funktionen.
Die zu verwendene Sprache ist PHP und die Speicherung aller Daten
erfolgt in einer XML-Datei. Bei dem Shop handelt es sich um einen
Ostershop, es soll von Osterleckereien bis hin zur Osterdekoration
diverses bestellt werden können. Der Shopname wird in der
Browserleiste angezeigt.
-
Generelle Anforderungen an die Implementierung:
- Bauen Sie eine sinnvolle Fehlerbehandlung ein. Debug-
und Fehlerausgaben sollen in Ihrer endgültigen Version nur noch in
einer Logdatei gespeichert werden.
- Eingaben sollen immer auf Korrektheit geprüft werden (z.B. bei Datumsangaben kein 44.13.2007)
-
Benutzen Sie eine SSL-Verbindung zur Übertragung sensibler Daten zum Server.
- Der Webshop soll ansprechend aussehen, vernünftig
strukturiert sein und mit verschiedenen Browser dargestellt werden
können.
-
Die für den Shop erzeugten PHP-Skripte sollen sinnvoll formatiert (Stichwort
Einrückungen) und kommentiert sein.
- Funktionsumfang des Shops für die Kunden:
-
Der Kunde kann anhand von Produktkategorien durch die angebotenen Produkte des Shops navigieren.
- Der Kunde hat die Möglichkeit Produkte in einen Warenkorb zu legen.
- Die Kundenverwaltung erfolgt über Sessions, die
beim Aufruf der Seite vergeben werden. Es werden keine Kundendaten
gespeichert.
- Möchte ein Kunde die im Warenkorb befindlichen
Artikel kaufen, gelangt er über einen Link "Bestellen" zu einer
Seite, auf der er aufgefordert wird, nochmal seine Angaben zu
überprüfen, gegebenenfalls die Anzahl der Artikel zu
ändern bzw Posten ganz zu löschen. Bei einer Änderung
der Daten ist der Preis zu aktualisieren. Danach wird der Kunde
aufgefordert seine Kundendaten anzugeben. Zu diesen gehören der
Name, die Lieferadresse, die Rechnungsadresse, sowie die Bezahlart. Als
Zahlungsmöglichkeiten sollen Bankeinzug, Nachnahme und
Kreditkartezahlung möglich sein, wobei im letzten Fall die Angabe
des Kreditkarteninhabers, der Kreditkartennummer (besteht bei uns nur
aus 5 Ziffern) und des Gültigkeitsdatums (Monat und Jahr) der
Karte notwendig sind. Nachdem er seine Angaben bestätigt hat, wird
ihm eine Auftragsbestätigung zugemailt, wobei eine Kopie per BCC
an den Shopbetreiber geht.
- Eine Session endet entweder durch Schließen des Browsers und Timeout, oder durch das Abschließen der Bestellung.
- Funktionsumfang des Shops für den Administrator/Shopbetreiber:
- Es soll sichergestellt werden, dass der Admin-Bereich
des Shops nicht durch normale Kunden benutzt werden kann. Dieser Login
des Administrators erfolgt über eine gesicherte SSL-Verbindung.
- Der Administrator kann den Shopnamen, den Betreiber, seine Email-Adresse usw. einstellen.
- Die Verwaltung des Shops erfolgt über eine
XML-Datei, in dieser werden alle Daten gespeichert (keine
Kundendaten!). Schreiben Sie zu ihrer XML-Datei eine DTD.
- Es soll die Möglichkeit bestehen, die XML-Datei
auch Online zu bearbeiten. Es ist vorzusehen Produktkategorien
anzulegen, zu löschen und zu ändern. Eine Produktkategorie
besteht aus einem Namen und deren Inhalt, den Produkten. Für jedes
Produkt gibt es einen Namen, ein Bild, eine Beschreibung sowie
natürlich auch einen Preis. Zur Bearbeitung der XML-Datei ist es
ausreichend, wenn der Inhalt in einem Textfeld angezeigt wird. Beim
Speichern der geänderten Datei ist es erforderlich zu testen, ob
es sich um eine korrekte XML-Datei handelt. Eine Behandlung aktiver
Sessions ist vorzusehen, da sich das Warenangebot womöglich
geändert hat.
- Neben einem Bild gibt es für jedes Produkt eine
Kurzbeschreibung, die für die Auflistung aller Produkte einer
Kategorie benutzt wird. Weiterhin gibt es für jedes Produkt eine
detaillierte Beschreibung, die angezeigt wird, wenn das Produkt
ausgewählt wird.
- Der Administrator hat die Möglichkeit, sich
Bestellübersichten anzusehen. Dazu wird eine Tabelle angezeigt, in
der für jeden Artikel die Bestellhäufigkeit angegeben wird.
- Zum 18.12. sind in schriftlicher Form ein Zeitplan und eine
Arbeitsaufteilung für die Lösung der Aufgabe abzugeben, die
auch ein oder mehrere UML-Diagramme enthalten (mindestens ein
Klassendiagramm).
Hilfe zum Einrichten der eigenen Homepage am Fachbereich:
https://www.mi.fu-berlin.de/w/Tec/UserPages. Am Fachbereich läuft
zur Zeit PHP4.3.11.
|
|
Zum Bestehen des Blattes ist es erforderlich, dass
Die Abgabe der Lösungen erfolgt auf zwei Wegen
Bitte schreiben Sie zur jeder Aufgabe eine Dokumentation, in der Sie
anhand von *relevanten* Codefragmenten Ihre Implementierung
erläutern.
Die Codefragmente sollten möglichst kurz gehalten werden und nur
der Orientierung für den Leser dienen; entscheidend sind Ihre
Erläuterungen, was diese Fragmente machen und wieso Sie sich
für diese Art der Implementierung entschieden haben. Erläutern
Sie auch, welche Art der Fehlerbehandlung Sie vorgenommen haben,
insbesondere bezüglich der Fehler, die erst bei verteilten Systemen
auftreten. Die Dokumentation ist in den Fächern der Tutoren
abzugeben.
Schicken Sie ein Archiv an Ihren Tutor, welches den vollständigen
Quellcode enthält. Der Betreff der E-Mail sollte wie folgt anfangen:
"[ALP5] Gruppe X ....".
|
|
Diskussionsaufgaben, die nicht
als Abgabe beantwortet werden sollen.Wir diskutieren sie in
der Übung,
Sie sollten sich im Rahmen dieser Aufgaben auf die Klausur
vorbereiten.
Block Serverseitige Verarbeitung
- Was macht ein Server um ein CGI-Script auszuführen?
- Wie kommunizieren der Server und das Script?
- Wie unterscheidet ein Script, ob es Daten per GET oder per
POST übermittelt bekommt?
- Nennen Sie zwei Unterschiede zwischen dem CGI- und dem
Servlet Mechanismus
- Beschreiben Sie den SSI Mechanismus
- Beschreiben Sie den JSP Mechanismus
- Vergleichen Sie die CGI und JSP Mechanismen
- Was macht ein Server um ein CGI-Script
auszuführen?
- Wie kommunizieren der Server und das Script?
- Wie unterscheidet ein Script, ob es Daten per GET
oder per
POST übermittelt bekommt?
- Nennen Sie zwei Unterschiede zwischen dem CGI- und
dem
Servlet Mechanismus
- Beschreiben Sie den SSI Mechanismus
- Beschreiben Sie die Funktionsweise von PHP
- Beschreiben Sie den JSP Mechanismus
- Vergleichen Sie die CGI, SSI, PHP, JSP und Servlets
jeweils miteinander
|