Bygg en multisida och testa arrayer
Låt oss använda PHP för att skapa mer dynamiska sidor. I denna uppgift handlar det om enklare PHP-konstruktioner som if
, switch
, array
och include
för att skapa multisidor, en sida med många undersidor och en aside-meny att navigera mellan sidorna.
#Förkunskaper
Du har jobbat igenom artikeln “Bygg en multisida med PHP”.
#Introduktion
Du skall göra en multisida likt den som visats i artikeln ovan.
Börja med att ta en kopia från exempelkoden som följer med artikeln.
# Ställ dig i rooten av kursrepot
cp -ri example/multipage/* me/kmom03/multi/
Nu har du din bas du kan utgå ifrån. Spara alla dina filer i katalogen me/kmom03/multi
.
#Krav
Implementera multisidan med en switch-case-sats.
Multisidan skall ha en default-sida som visas om
?page
inte finns eller ompage
saknar ett värde.Använd ternary operator för att hantera
$_GET['page']
.Skriv säker PHP-kod och validera inkommande
$_GET
, innan du använder dem eller skriver ut dem.Se till att din kod är DRY.
Gör så att menyvalet i menyn blir aktivt, visa en annorlunda stil för den undersida som är vald.
Bygg ut undersidan som skriver ut innehållet i arrayen
$_SERVER
. Lägg till så att den även anger antalet värden som finns i arrayen$_SERVER
. Till exempel “There are XX entries in the array.”.Skapa en ny undersida som innehåller följande. Skriv en
foreach()
loop som räknar ut längden på varje värde i arrayen$_SERVER
. För varje nyckel i arrayen, skall du ta värdet och räkna ut längden av det medstrlen()
. Skriv ut nyckeln (key), följt av längden (strlen()
) på dess värde (value). Avsluta med att skriva ut själva innehållet i den key/value som “är längst”.Validera och publicera din kod enligt följande.
# Ställ dig i kurskatalogen
dbwebb publish multi
Rätta eventuella fel som dyker upp och publicera igen. När det ser grönt ut så är du klar.
#Extrauppgift
Bygg fler multisidor och gör fler egna tester.
Om du anger en felaktig referens på
?page=
så skicka en header för http-koden 404. Tips om 404-header.Kommentera bort din switch-sats och lös det med en array och en if-sats (överkurs).
#Tips från coachen
Validera och publicera ofta. Så slipper du en massa validerings- och publiceringsfel i slutet av övningen.
När du gör publish så körs även validate. Blir det för mycket fel när du kör publish så kan det bli enklare att bara göra validate till att börja med.
Lycka till och hojta till i forumet om du behöver hjälp!
#Revision history
- 2015-09-09: (C, mos) Förtydligade krav om att undersida som visar detaljer om `$_SERVER`.
- 2015-08-24: (B, mos) Bort med uppgift om styling, flyttad till me-sidans uppgift.
- 2015-05-20: (A, mos) Första utgåvan i samband med kursen htmlphp v2.