I denne øvelse skal du konstruere en webbaseret projektbørs med PHP og MySQL. Hovedsiden for projektbørsen skal liste alle projekterne i databasen (tag dig ikke af at projektemnerne i skærmbillederne omhandler et andet programmeringssprog end PHP...):
Det skal være muligt for en person at oprette et projekt med en dertil hørende projekttekst:
Ved at brugeren oplyser et password skal det tillige være muligt for brugeren at opdatere projektteksten:
Øvelsen er opdelt i fire opgaver:
Som det første led i konstruktionen af en webbaseret projektbørs skal
du konstruere en datamodel for systemet i form af en tabel. Tabellen
skal kunne indeholde information om projekttitel, projekttekst og
information om projektadministratoren i form af navn, email og
password. Ydermere skal hvert projekt være identificeret med et unikt
tal (brug primary key og
auto_increment). Det skal sikres (ved brug af
unique) at alle projekter har forskellig titel.
Gem din datamodel i filen DSDS/ps10/project.sql i dit
web-bibliotek på ITU's netværk. Skriv også SQL kode i filen for
indsættelse af to projekter.
I denne opgave skal du opskrive de legale transaktioner for den webbaserede projektbørs i form af SQL-kommandoer:
Gem SQL-kommandoerne i en fil
DSDS/ps10/transactions.sql i dit
web-bibliotek på ITU's netværk.
Du skal nu planlægge strukturen for den webbaserede projektbørs. Her er en skitse af hvordan systemet ønskes opbygget:
Kasserne i diagrammet repræsenterer den webbaserede projektbørs' tilstande for hvilke HTML-kode vises i en brugers browser. Unavngivne pile repræsenterer links til en ny tilstand og navngivne pile repræsenterer transaktioner for hvilke databasen opdateres (se opgave B) og brugeren ser en ændring i sin browser ved at blive sendt til en ny tilstand.
Hovedsiden for den webbaserede projektbørs er vist som en kasse øverst i diagrammet. Hovedsiden og siden for opdatering af et projekt skal implementeres som PHP-scripts, da hvad der vises i disse sider afhænger af indholdet i databasen og af eventuelle formargumenter. Kassen for oprettelse af et nyt projekt kan implementeres som en HTML-fil.
Din opgave er at navngive HTML-filen og PHP-filerne for de dynamiske sider og for
transaktionerne (de navngivne pile). For at gøre det lettere at finde
din besvarelse skal hovedsiden implementeres som en fil
DSDS/ps10/projects.php i dit
web-bibliotek på ITU's netværk.
Formålet med denne opgave er altså ikke at konstruere PHP-scripts for servicen, men at planlægge navngivningen af filerne som indgår og afgøre hvilke formvariabler der skal overføres fra en side til en anden.
Til denne opgave skal du konstruere en beskrivelse af din
web-struktur, som indeholder navne på de PHP-scripts projektbørsen
anvender samt, for hver PHP-script de formvariabler som filen
forventer. Beskrivelsen skal enten gives som en tekstfil
DSDS/ps10/struktur.txt, eller som en tegning
DSDS/ps10/struktur.gif i dit web-bibliotek på ITU's
netværk. Hvis du afleverer besvarelsen som en tegning skal der for
hvert PHP-script påføres både navn på scriptet og hvilke
formvariabler scriptet forventer.
I denne opgave skal du konstruere HTML-filen og PHP-filerne for de dynamiske sider og for database-transaktionerne. Start med at konstruere HTML-filen og PHP-filerne for kasserne i diagrammet.
Ved implementation af PHP-filen for opdatering af et projekt skal du huske at skrive kode til at sammenligne det indtastede password med password'et i databasen - det skal jo kun være muligt for administratoren at ændre projektteksten!
Husk at checke formvariablerne.
Yderligere bemærkninger:
mydb.php og formvars.php fra forelæsningerne.header:header("Location:url")
Implementer en eller flere af følgende udvidelser til systemet: