Opgavesæt 2: PHP på Web-serveren

for Databasestøttet Webpublicering

  sidst rettet 3. sept, 2002


I denne øvelse skal vi bruge programmeringssproget PHP til at konstruere dynamiske web-sider.

Ved gradueringen lægges der bl.a. vægt på:

Opgave A (20 procent) - Temperaturservice

I denne øvelse skal du fremstille et PHP-script som omregner en temperatur i enheden grader Fahrenheit til enheden grader Celcius.

I USA måles temperatur typisk i grader Fahrenheit. Udfra temperaturen i grader Fahrenheit (tempfahrenheit) beregnes temperaturen i grader Celcius (tempcelcius) som følger:

tempcelcius = 5.0/9.0 * (tempfahrenheit - 32.0)

Hvis temperaturen i Fahrenheit er 68 grader er temperatuen i grader Celcius altså 5.0/9.0 * (68.0 - 32.0) = 0.555556 * 36.0 = 20.0.

Skriv et script, som omregner variablen $tempfahrenheit (temperatur i grader Fahrenheit) og returnerer temperaturen i grader Celcius. Skriv scriptet i en fil temperatur.php.

Scriptet kan have formen:


$tempfahrenheit = 68
$tempcelcius = [noget PHP-script som beregner $tempcelcius udfra $tempfahrenheit ]

echo $tempfahrenheit;
echo $tempcelcius

Indsæt den manglende PHP-script (inkl. beregningen) og den nødvendige HTML.
Kopier besvarelsen til H:public_html/W2/oevelse2/ som temperatur.php.

 

Opgave B (20 procent) - Temperaturservice

I denne opgave skal du fremstille en service på internettet hvor brugeren i en formular indtaster en temperatur i grader Fahrenheit. Genbrug dit PHP-script fra øvelse A således at din nye temperatur2.php.- fil omregner Fahrenheit-gradtal , men udfra tallet den får sendt fra en formular. Bemærk at nu skal du ikke sætte værdien af variablen $tempfahrenheit til 68. $tempfahrenheit-variablen er nemlig allerede sat af det tilsendte formindhold - hvis ellers formelementet har fået variablens navn minus dollartegnet.


HTML-filen temperatur.html kan indeholde følgende HTML kode. (Husk du skal fremstille et korrekt HTML-dokument med header, afslutning m.m.):

  <form method=post action=temperatur2.php>
  Angiv temperaturen i grader Fahrenheit
  <input type=text name=tempfahrenheit size=7>
  <input type=submit>
  </form>

Din nye udgave af PHP-scriptet som beregner temperaturen i grader Celcius udfra temperaturen i grader Fahrenheit, placeres i filen H:public_html/W2/oevelse2/temperatur2.php. Filnavnet skal være identisk med action værdien angivet i filen temperatur.html.

Filen kan have følgende format:


[Indsæt proceduren fra Opgave A her] <html> <head> <title>Temperaturservice</title> </head> <body> <h2>Temperaturservice</h2> Temperatur i grader Fahrenheit: $tempfahrenheit<p> Temperatur i grader Celcius: $tempcelcius </body> </html>"
Når temperatur2.php kaldes fra temperatur.html er det således værdien i tempfahrenheit form-feltet, som overføres til filen temperatur2.php.

Udvid servicen til at undersøge om brugeren virkelig har indtastet nogle tegn i form-feltet (hint: læs afsnittet Form Validation s. 140 i "Beginning....").

Indsæt et link fra den genererede side tilbage til temperatur.html siden. (Når du indsætter links i PHP-kode skal du huske at quotes (") skal skrives \"). Indsæt også et link fra din W2/index.html side på til temperaturservicen.

De to skærmbilleder kan f.eks. se således ud:

Temperatur Temperatur oversat

Opgave C (20 procent) - Gang to tal med hinanden!

Konstruer en multiplikationsservice for 3. klasser. Servicen skal tilbyde brugeren at gange to tal med hinanden og vise resultatet Dit PHP-script skal gange de to tal med hinanden og returnere både de to tal og resultatet af multiplikationen.

Servicen skal - svarende til dine andre opgaveløsninger - være tilgængelig på internettet som:

  http://www.it-c.dk/~(dit loginnavn)/W2/oevelse2/multiplikation.html
H:public_html/W2/oevelse2/ skal du altså have en multiplikation.html med et form-felt til indtastning af de to tal. Yderligere skal du konstruere en PHP-fil (oevelse2/multiplikation.php), som når den læses af web-serveren, returnerer en HTML-side indeholdende resultatet for det indtastede tal. Sørg for at der er forklaring på hvad brugeren (barnet) skal gøre og hvad resultatsiden viser.

Indsæt et link fra din W2/index.html side til multiplikationsservicen.

 

Opgave C (40 procent) - Æblegrødsprogram

I denne opgave skal du konstruere et program aeblegroed, som angiver en opskrift på æblegrød afhængigt af antallet af mennesker der skal bespises. Dit PHP-program skal altså returnere en HTML-side indeholdende en æblegrødsopskrift til det pågældende antal mennesker som angives i en spørgeformular.

Her er en æblegrødsopskrift passende til én person:

Ingredienser Fremgangsmåde
  • 2 æbler
  • 1 spsk sukker
  • 1/2 dl vand
  • 1 nip vanille
Æblerne koges og moses sammen med sukkeret, vandet og vanillen.

Det er altså din opgave at skrive PHP-scriptet aeblegroed, således at proceduren returnerer en opskrift for det antal personer du kalder programmet med (formen på opskriften er ikke vigtig!)
Her er et eksempel på det returnerede HTML efter et kald af aeblegroed.php?antalspisere=12:

  <html>
  ...
  <table border=1>
  <tr><th align=center>Ingredienser</th><th>Fremgangsmåde</th></tr>
  <tr><td>
    <ul><li> 24 æbler
        <li> 12 spsk sukker
        ...
    </ul></td>...
  </table>
  ...
  <html>

Du skal fremstille disse filer:
- aeblegroed.html
- som skal indeholde en HTML-formular til indtastning af det antal personer, som der skal laves æblegrød til. Bemærk du skal anvende method="get"-sendemetoden i din formular.
og
aeblegroed.php - som er et PHP-script, der skal returnere en HTML-side indeholdende en æblegrødsopskrift for det indtastede antal personer.

Gem filerne i H:public_html/W2/oevelse2/

De to skærmbilleder kan f.eks. se således ud:

aeblegroed.html aeblegroed.php

 


mejner@it.edu