Erweitern Sie ihren HTML-PHP-Taschenrechner aus dem letzten Übungsblatt
um die folgenden Funktionen.
Version 1: Fakultät
Übergeben wird eine Zahl n im Operandenfeld 1. Die
Fakultät liefert im Ausgabefenster das Produkt der natürlichen Zahlen
1..n. Berechnen Sie die Fakultät mit Hilfe einer
for-Schleife.
Abb.1:
Ausgabe des Taschenrechners zur Fakultät
Version 2: Größter gemeinsamer Teiler (GGT)
Der Algorithmus zur Berechnung des GGT zweier natürlicher Zahlen M
und N lässt sich mittels des folgenden Flussdiagramms
verdeutlichen (siehe Abbildung 2). Kern des Verfahrens ist es, solange
von der momentan größeren Zahl, der beiden Zahlen x und y,
die kleinere Zahl zu subtrahieren,
bis diese schließlich gleich sind.
Abb.2:
Flussdiagramm GGT
Implementieren Sie das Verfahren mit Hilfe einer while-Schleife
und legen Sie die Operation wieder auf einen entsprechenden Radio
Button. Die Operanden M und N werden in den
Operandenfeldern 1 und 2 übergeben (Abbildung 3).
Abb.3: Ausgabe
des Taschenrechners zum GGT
Aufgabe 2: Dateiupload
PHP unterstützt Dateiuploads nach der POST-Methode. Wie in der
Vorlesung erläutert, werden beim POST die Daten nicht wie beim GET mit
Hilfe eines Querystrings gesendet, sondern verdeckt im Hintergrund.
Dabei können beliebige Dateien versendet werden, um z. B. Emails mit
Anhängen zu versehen oder ganz allgemein Webauftritte mit der
Möglichkeit auszustatten, Dateien vom Benutzer entgegenzunehmen.
Abb.4:
HTML-Oberfläche für den Dateiupload
Konstruieren Sie mit CSS eine GUI bestehend aus:
einem Bedienteil zur Eingabe der zu kopierenden Dateien,
einem Ausgabeteil für die Ausgabe einer Meldung über den Erfolg oder
Misserfolg des Hochladens (siehe Abbildung 4).
Die zu sendenden Dateien werden hier durch ein spezielles
Formularelement ausgewählt. Lesen Sie hierzu den Abschnitt Felder für Datei-Upload definieren in SelfHTML.
Mit dem Bedienteil ist es möglich, maximal drei Dateien gleichzeitig zu
übertragen. Dabei sollen nur für die Formularfelder, in denen Dateinamen
eingegeben wurden, im Ausgabefeld Meldungen erscheinen.
Durch Abschicken des Formulars werden die Dateien in das temporäre
Verzeichnis des PHP-Interpreters übertragen, sofern als Ziel eine
PHP-Datei angegeben wurde. Das Verschieben der Dateien in ihr eigenes
Webserververzeichnis muss nachfolgend mit Hilfe von Befehlen in
dieser PHP-Datei durchgeführt werden. Lesen Sie hierzu den Abschnitt Dateiuploads mit POST im PHP Handbuch.
Für das Verschieben der Dateien ist es erforderlich, den Namen des
Webverzeichnisses im PHP-Script zu bestimmen. Der Name ist wie folgt
aufgebaut: DOCUMENT_ROOT/dmuser/dmuserx.
DOCUMENT_ROOT ist das HTML-Wurzelverzeichnis des Webservers. Unter
Apache ist dies i. d. R. ein Verzeichnis mit dem Namen htdocs
irgendwo im Verzeichnisbaum des Server-Rechners. Dies ist auch bei
unserem Webserver der Fall. In diesem Verzeichnis befindet sich ein
Unterverzeichnis dmuser.
In diesem liegt ihr Webverzeichnis dmuserx,
wobei x wie immer die Nummer ihres Accounts repräsentiert.
Das Verschieben der hochgeladenen Dateien auf dem Server führt in der
zugehörenden PHP-Datei leicht zu Codeduplikation, wenn - wie in diesem
Fall - mehrere Dateien zu verschieben ist. Vermeiden Sie diese
Codeduplikation mit Hilfe einer Schleifenanweisung.