A2: PHP
Termin: Di 18.11.
Diese Aufgabe setzt auf der HTML/CSS Aufgabe auf. Das Ziel ist nun, dem Benutzer zu ermöglichen, sämtliche Informationen zum Album (Titel, Interpret, Trackliste, Link zum Bild falls vorhanden) über ein Formular einzugeben. Die Tracklist-Seite wird dann nicht mehr statisch in HTML kodiert sondern über ein PHP Script dynamisch erzeugt mit den gespeicherten Album-Informationen.
Aufgabe
- Legen Sie sich für diese Aufgabe ein eigenes Verzeichnis an (Überschreiben Sie nicht die alte HTML/CSS).
- Erstellen Sie ein Web Formular zur Eingabe der Album Informationen (Sie können meinetwegen annehmen dass maximal 10 Tracks pro Album eingegeben werden können)
- Repräsentieren Sie alle Album Informationen in einer eigenen PHP Klasse "Album" (eine weitere Klasse "Track" wäre auch gut…)
- Die Formulareingaben sollen persistent auf der Platte gespeichert werden.
- Die gespeicherten Album-Informationen sollen auf einer separaten Tracklist-Script ausgegeben werden, dabei können Sie das HTML / CSS der ersten Aufgabe wiederverwenden, müssen aber PHP Kommandos zum Auslesen der Album-Infos einbauen.
- Falls bereits Album-informationen gespeichert sind, soll das Eingabeformular mit diesen Daten vorbelegt werden (damit man nicht immer alles neu eingeben muss).
- Fleissaufgabe für Interessierte (freiwillig, aber ich nehme an das sind alle!): Speichern Sie keinen Hyperlink zum Bild mit dem Album-Cover, sondern lassen Sie den Benutzer über das Album-Eingabeformular ein Bild hochladen, dass Sie in Ihrem Verzeichnis dann abspeichern und in der Tracklist-Anzeige verlinken.
- Fleissaufgabe für wirklich Interessierte (freiwillig, aber ich nehme an das sind immer noch viele!): Erlauben Sie das Speichern mehrerer verschiedener Alben, und in der Tracklist Seite soll über ein Dropdown Feld auswählbar sein, welches der gespeicherten Alben angezeigt wird.
Hinweise
- Das Serialisieren (=Umwandeln in einen String) und Deserialisieren (=Erzeugen eines Objekts aus der String-Repräsentation) der Album-Informationen (Klasse Album) kann mit den PHP Funktionen «serialize» und «unserialize» erreicht werden. Das serialisierte Objekt soll in einem File in Ihrem Verzeichnis abgelegt werden.
Also wir brauchen mal eine Klasse Album:
class Album {
// ...
}
Dann wollen wir (nachdem die Instanzvariablen gesetzt wurden entsprechend den Benutzereingaben im Formualar) das Album serialisieren. Dafür benötigen wir einige Datei-Operationen, also «fopen» (Öffnen einer Datei), «frwite» (Schreiben in eine Datei), «fclose» (Schliessen der Datei)
$album = new Album;
... // setzen der Album Infos gemäss Eingaben im Formular
$f = fopen("album.txt", "w"); // öffnen der Datei album.txt für Schreiben ("w" = write)
fwrite($f, serialize($album)); // Speichern des serialisierten Albums in der Datei
fclose($f); // Schliessen der Datei
Das Auslesen funktioniert analog:
$f = fopen("album.txt", "r"); // Öffnen der Datei album.txt für Lesen ("r" = read)
$album = unserialize( fread($f, filesize("album.txt")) ); // Deserialisieren des Albums aus der Datei
fclose($f);
... // allerhand Dinge mit $album anstellen
Wichtig: Damit das Schreiben in Ihrem Verzeichnis funktioniert, braucht die PHP Laufzeitumgebung schreibenden Zugriff auf das Verzeichnis. Am einfachsten ist dies, indem Sie auf der Konsole in dieses Verzeichnis wechseln und dort Vollzugriff geben durch dieses Kommando:
chmod 777 .
Abgabe
- Laden Sie (ähnlich wie bei Aufgabe 1) eine HTML Seite im Abgabebereich hoch, in der 4 Links stehen sollen: (1) Link zum Formular, (2) Link zum Quelltext des Formulars, (3) Link zur Darstellung, (4) Link zum Quelltext der Darstellung. Wie kann ich einen Link zum PHP Quelltext machen?
- Bloggen nicht vergessen.
Letzte Änderung: 07.11.2008, 12:37 | 516 Worte