1. Anja Nygård Sjøholt Erlend Smines Kenneth Johansen Leif Gunnar Kristiansen
  2. 7. mai 2003
  3. Innholdsfortegnelse
  4. Figurliste
  5. 1. Dokumentasjon av kildekoden til websiden
  6. 1.2 Menu.inc
  7. 1.3 Foother.inc
  8. 1.4 Main.inc
  9. 1.5 Index.php
  10. 1.6 Main.php
  11. 1.7 Header_index.inc
  12. 1.8 Header.inc
  13. 1.9 Connect.inc
  14. 1.10 Feil.inc
  15. 1.11 Feil.php
  16. 1.12 Overskrift.inc
  17. 1.13 Uke.inc
  18.  
  19. 1.15 Style.css, style_main.css og style_ps.css
  20. 1.16 Case_X_Y.inc
  21. 1.17 Case_5_3.inc
  22. 1.18 Case_6_1.inc
  23. 1.19 Artikkel.inc
  24. 2 Dokumentasjon av kildekoden til admin.systemet
  25. 2.1 Index.php
  26. 2.2 Login.inc
  27. 2.3 Validate.inc
  28. 2.4 Rettigheter.inc
  29. 2.5 Header.inc
  30. 2.6 Variabler.inc
  31. 2.7 Style.css
  32. 2.8 Hjelp_id.inc
  33. 2.9 Hjelp.php
  34. 2.10 Header_hjelp.inc
  35. 2.11 Hjelp_all.php
  36. 2.12 Arrangement_ny.php
  37. 2.13 Arrangement_rediger.php
  38. 2.14 Arrangement_slett.php
  39. 2.15 Arrangement_vis.php
  40. 2.16 Kalender.inc
  41. 2.17 Artikkel_ny.php
  42. 2.18 Artikkel_rediger.php
  43. 2.19 Artikkel_slett.php
  44. 2.20 Artikkel_vis.php
  45. 2.21 Nyhet_ny.php
  46. 2.22 Nyhet_rediger.php
  47. 2.23 Nyhet_slett.php
  48. 2.24 Nyhet_vis.php
  49. 2.25 Meny_ny_gruppe.php
  50. 2.26 Meny_nytt_element.php
  51. 2.27 Meny_rediger.php
  52. 2.28 Meny_vis.php
  53. 2.29 Bilde_upload.php
  54. 2.30 Bilde_rediger.php
  55. 2.31 Bilde_vis_filnavn.php
  56. 2.32 Bruker_ny.php
  57.  
  58. 2.34 Bruker_slett.php
  59. 2.35 Bruker_vis.php
  60. 2.36 Endre_bnavn_pwd.php
  61. 2.37 Bruker_selv.php
  62. 2.38 Gjestebok_slett.php
  63. 3 Testdokument
  64. 3.1 Test case logg inn/logg ut
    1. Testforløp:
    2. Testresultat/feil:
  65. 3.2 Test case logg inn/automatisk logg ut
    1. Testforløp:
    2. Testresultat/feil:
  66. 3.3 Test case opprett ny bruker
    1. Testforløp:
    2. Testresultat/feil:
  67. 3.4 Test case rediger bruker
    1. Testforløp:
    2. Testresultat/feil:
  68. 3.5 Test case vis bruker
    1. Testforløp:
    2. Testresultat/feil:
  69. 3.6 Test case slett bruker
    1. Testforløp:
    2. Testresultat/feil:
  70. 3.7 Test case endre brukernavn/passord
    1. Testforløp:
    2. Testresultat/feil:
  71. 3.8 Test case ny nyhet
    1. Testforløp:
    2. Testresultat/feil:
  72. 3.9 Test case rediger nyhet
    1. Testforløp:
    2. Testresultat/feil:
  73. 3.10 Test case vis nyheter
    1. Testforløp:
    2. Testresultat/feil:
  74. 3.11 Test case slett nyhet
    1. Testforløp:
    2. Testresultat/feil:
  75. 3.12 Test case ny artikkel
    1.  
    2. Testresultat/feil:
  76. 3.13 Test case rediger artikkel
    1. Testforløp:
    2. Testresultat/feil:
  77. 3.14 Test case vis artikler
    1. Testforløp:
    2. Testresultat/feil:
  78. 3.15 Test case slett artikkel
    1. Testforløp:
    2. Testresultat/feil:
  79. 3.16 Test case nytt arrangement
    1. Testforløp:
    2. Testresultat/feil:
  80. 3.17 Test case rediger arrangement
    1. Testforløp:
    2.  
  81. 3.18 Test case vis arrangement
    1. Testforløp:
    2. Testresultat/feil:
  82. 3.19 Test case slett arrangement
    1. Testforløp:
    2. Testresultat/feil:
  83. 3.20 Test case last opp bilde
    1. Testforløp:
    2. Testresultat/feil:
  84. 3.21 Test case rediger bilde
    1. Testforløp:
    2. Testresultat/feil:
  85. 3.22 Test case slett bilde
    1. Testforløp:
    2. Testresultat/feil:
  86.  
    1. Testforløp:
    2. Testresultat/feil:
  87. 3.24 Test case nytt menyelement
    1. Testforløp:
    2. Testresultat/feil:
  88. 3.25 Test case vis meny
    1. Testforløp:
    2. Testresultat/feil:
  89. 3.26 Test case rediger/slett meny
    1. Testforløp:
    2. Testresultat/feil:
  90. 3.27 Test case slett gjestebok oppføring
    1. Testforløp:
    2. Testresultat/feil:

Webside/Webportal & IP-Sone
for
En Kopp Café & Bar
Arkaden Servering AS
Bind 5
Implementasjon
Testing
11121 Prosjektoppgave
Anja Nygård Sjøholt
Erlend Smines
Kenneth Johansen
Leif Gunnar Kristiansen

Back to top


7. mai 2003

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 2

Back to top


Innholdsfortegnelse
INNHOLDSFORTEGNELSE........................................................................................................................ 2
FIGURLISTE .................................................................................................................................................. 4
1. DOKUMENTASJON AV KILDEKODEN TIL WEBSIDEN................................................................. 5
1. DOKUMENTASJON AV KILDEKODEN TIL WEBSIDEN................................................................. 5
1.1 HEADER_IMG.INC .................................................................................................................................... 5
1.2 MENU.INC................................................................................................................................................ 5
1.3 FOOTHER.INC........................................................................................................................................... 6
1.4 MAIN.INC................................................................................................................................................. 7
1.5 INDEX.PHP ............................................................................................................................................... 8
1.6 MAIN.PHP ................................................................................................................................................ 8
1.7 HEADER_INDEX.INC .............................................................................................................................. 10
1.8 HEADER.INC .......................................................................................................................................... 10
1.9 CONNECT.INC ........................................................................................................................................ 11
1.10 FEIL.INC............................................................................................................................................... 11
1.11 FEIL.PHP .............................................................................................................................................. 11
1.12 OVERSKRIFT.INC.................................................................................................................................. 11
1.13 UKE.INC............................................................................................................................................... 11
1.14 CLEAN_TEXT.INC................................................................................................................................. 12
1.15 STYLE.CSS, STYLE_MAIN.CSS OG STYLE_PS.CSS .................................................................................. 12
1.16 CASE_X_Y.INC ................................................................................................................................... 12
1.17 CASE_5_3.INC ..................................................................................................................................... 13
1.18 CASE_6_1.INC ..................................................................................................................................... 13
1.19 ARTIKKEL.INC ..................................................................................................................................... 13
2 DOKUMENTASJON AV KILDEKODEN TIL ADMIN.SYSTEMET................................................. 15
2.1 INDEX.PHP ............................................................................................................................................. 15
2.2 LOGIN.INC ............................................................................................................................................. 16
2.3 VALIDATE.INC ....................................................................................................................................... 16
2.4 RETTIGHETER.INC.................................................................................................................................. 16
2.5 HEADER.INC .......................................................................................................................................... 17
2.6 VARIABLER.INC ..................................................................................................................................... 17
2.7 STYLE.CSS ............................................................................................................................................. 17
2.8 HJELP_ID.INC......................................................................................................................................... 17
2.9 HJELP.PHP.............................................................................................................................................. 18
2.10 HEADER_HJELP.INC ............................................................................................................................. 18
2.11 HJELP_ALL.PHP.................................................................................................................................... 18
2.12 ARRANGEMENT_NY.PHP...................................................................................................................... 18
2.13 ARRANGEMENT_REDIGER.PHP............................................................................................................. 19
2.14 ARRANGEMENT_SLETT.PHP ................................................................................................................. 19
2.15 ARRANGEMENT_VIS.PHP ..................................................................................................................... 19
2.16 KALENDER.INC .................................................................................................................................... 20
2.17 ARTIKKEL_NY.PHP .............................................................................................................................. 20
2.18 ARTIKKEL_REDIGER.PHP ..................................................................................................................... 20
2.19 ARTIKKEL_SLETT.PHP ......................................................................................................................... 21
2.20 ARTIKKEL_VIS.PHP.............................................................................................................................. 21
2.21 NYHET_NY.PHP.................................................................................................................................... 21
2.22 NYHET_REDIGER.PHP .......................................................................................................................... 21
2.23 NYHET_SLETT.PHP............................................................................................................................... 22
2.24 NYHET_VIS.PHP ................................................................................................................................... 22
2.25 MENY_NY_GRUPPE.PHP....................................................................................................................... 22
2.26 MENY_NYTT_ELEMENT.PHP ................................................................................................................ 22
2.27 MENY_REDIGER.PHP............................................................................................................................ 23

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 3
2.28 MENY_VIS.PHP .................................................................................................................................... 23
2.29 BILDE_UPLOAD.PHP............................................................................................................................. 23
2.30 BILDE_REDIGER.PHP............................................................................................................................ 24
2.31 BILDE_VIS_FILNAVN.PHP..................................................................................................................... 24
2.32 BRUKER_NY.PHP ................................................................................................................................. 24
2.33 BRUKER_REDIGER.PHP ........................................................................................................................ 25
2.34 BRUKER_SLETT.PHP............................................................................................................................. 25
2.35 BRUKER_VIS.PHP................................................................................................................................. 25
2.36 ENDRE_BNAVN_PWD.PHP .................................................................................................................... 26
2.37 BRUKER_SELV.PHP .............................................................................................................................. 26
2.38 GJESTEBOK_SLETT.PHP........................................................................................................................ 26
3 TESTDOKUMENT.................................................................................................................................... 27
3.1 TEST CASE LOGG INN/LOGG UT .............................................................................................................. 27
3.2 TEST CASE LOGG INN/AUTOMATISK LOGG UT ........................................................................................ 28
3.3 TEST CASE OPPRETT NY BRUKER............................................................................................................ 29
3.4 TEST CASE REDIGER BRUKER ................................................................................................................. 29
3.5 TEST CASE VIS BRUKER.......................................................................................................................... 30
3.6 TEST CASE SLETT BRUKER ..................................................................................................................... 30
3.7 TEST CASE ENDRE BRUKERNAVN/PASSORD............................................................................................ 31
3.8 TEST CASE NY NYHET ............................................................................................................................ 31
3.9 TEST CASE REDIGER NYHET ................................................................................................................... 32
3.10 TEST CASE VIS NYHETER...................................................................................................................... 33
3.11 TEST CASE SLETT NYHET ..................................................................................................................... 33
3.12 TEST CASE NY ARTIKKEL ..................................................................................................................... 34
3.13 TEST CASE REDIGER ARTIKKEL ............................................................................................................ 34
3.14 TEST CASE VIS ARTIKLER..................................................................................................................... 35
3.15 TEST CASE SLETT ARTIKKEL ................................................................................................................ 35
3.16 TEST CASE NYTT ARRANGEMENT......................................................................................................... 36
3.17 TEST CASE REDIGER ARRANGEMENT.................................................................................................... 36
3.18 TEST CASE VIS ARRANGEMENT ............................................................................................................ 37
3.19 TEST CASE SLETT ARRANGEMENT........................................................................................................ 38
3.20 TEST CASE LAST OPP BILDE.................................................................................................................. 39
3.21 TEST CASE REDIGER BILDE................................................................................................................... 39
3.22 TEST CASE SLETT BILDE....................................................................................................................... 40
3.23 TEST CASE VIS BILDER ......................................................................................................................... 41
3.24 TEST CASE NYTT MENYELEMENT ......................................................................................................... 41
3.25 TEST CASE VIS MENY ........................................................................................................................... 42
3.26 TEST CASE REDIGER/SLETT MENY........................................................................................................ 42
3.27 TEST CASE SLETT GJESTEBOK OPPFØRING............................................................................................ 43

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 4

Back to top


Figurliste
FIGUR 1: HEADER GRAFIKK................................................................................................................................5
FIGUR 2: MENY GRAFIKK. .................................................................................................................................. 5
FIGUR 3: FOOTHER GRAFIKK. ............................................................................................................................. 6
FIGUR 4: HOVEDSIDE GRAFIKK. ......................................................................................................................... 7
FIGUR 5: KALENDER APPLET. ........................................................................................................................... 20

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 5

Back to top


1. Dokumentasjon av kildekoden til websiden
Her vil vi beskrive sidens oppbygging og begrunne de valgene vi har gjort når det gjelder
den løsningen vi har kommet frem til.
Siden er bygd opp av flere deler. Hver hoveddel er lagt i en fil som blir inkludert.
Oppdelingen er som følger:
1.1 Header_img.inc

Back to top


Figur 1: Header grafikk.
Den øverste delen ligger i en fil som heter
header_img.inc
. Denne filen inneholder foruten
bildet over en såkalt
imagemap
. Det er angitt to felt på bildet som inneholder en hyperlink.
Logoen peker til hovedsiden, mens det sammensatte bildet peker til en side hvor det står
litt om oss som har utarbeidet siden og bakgrunnen for denne. Selve image-mapen er satt
på et gjennomsiktig gif-bilde som er lagt over bakgrunnen. Dette er på grunn av at et bilde
som er definert som bakgrunn ikke kan brukes som
imagemap
.

Back to top


1.2 Menu.inc
Figur 2: Meny grafikk.
Grafikken som ligger bak menyen ligger i en fil som heter
menu.inc
. I den filen ligger også
teksten som står i menyen, som igjen hentes fra tabellen
pagemenu
i databasen. På den

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 6
øverste linjen skrives hovedmenyene ut. På den nederste linjen skrives eventuelle sub-
menyer ut. For å skrive ut de riktige sub-menyene utføres det en spørring som søker opp de
elementene som er relatert til den aktive hovedmenyen.
Hele menyen består av en tabell med to rader og seks kolonner. De cellene som ikke
inneholder en link, inneholder en
non-breaking space
(html entitet
 
).

Back to top


1.3 Foother.inc
Figur 3: Foother grafikk.
Her er bunnlinjen som ligger i filen
foother.inc
. Oppå dette bildet ligger adresse og annen
kontaktinformasjon til En Kopp. Det er også lagt inn en link til administrasjonssystemet
her.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 7

Back to top


1.4 Main.inc
Figur 4: Hovedside grafikk.
Dette er selve hovedsiden, og ligger i filen som heter
main.inc
. Her er det satt inn en
iframe
som gir muligheten til scrolling på den delen av siden.
Iframe
står for
inline frame
, og er en
ramme som kan justeres fritt i størrelse og plassering, og som igjen inneholder en ny side.
Det hadde vært ønskelig å sette størrelsen av
iframen
i prosent av skjermen, slik at siden
har justert seg automatisk i forhold til brukerens monitor. Dette har vært mulig å gjøre hvis
vi ikke hadde tatt høyde for valgfri bruk av nettlesere. Men på grunn av at prosentjustering
av
iframe
ikke støttes av nettleseren Opera, lot vi det være, og optimaliserte siden til
oppløsning på 1152*864 pixler istedenfor. De som har mindre oppløsning, vil få en
scrollbar helt ute i høyrekanten på monitoren.
Iframen
nyttiggjør seg av filen
main.php
.
Main.php
er den filen som viser alle sidene. Oppbyggingen av den kommer vi tilbake til
senere.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 8
Generelt for alle disse delene er at bildene ligger som tabellbakgrunn i hver sin tabell.
Websiden er dermed bygd opp av fire ulike tabeller. Årsaken til at vi har valgt å sette siden
sammen av fire tabeller istedenfor en tabell med flere tabellrader, er at en bakgrunn i en
tabellrad blir litt forskjøvet ned og mot høyre. Dette førte til at siden ikke ble vist som den
skulle. I tillegg blir det en linje mellom hver tabell, som fører til at bakgrunnen som flyter
rundt siden ikke kommer til syne mellom hoveddelene som siden er bygd opp av. Vi var
også avhengig av at menyen skulle bestå av to rader, for å få til en hovedmeny, samt en
submeny for enkelte av sidene. For å få løst dette ved bruk av en stor tabell for hele siden,
ville vi ha blitt nødt til å dele menybildet i to deler, og også der fått en horisontal linje
mellom de to delene.
Nedenfor vil vi gå gjennom hver enkelt fil for å forklare hva som gjøres hvor, på en mindre
teknisk måte.

Back to top


1.5 Index.php
Index.php
er den filen som åpnes som standard når noen går inn på www.en-kopp.no. Det
er en svært kort fil som ikke gjør annet enn å inkludere filen
header_index.inc
samt filene
header_img.inc
,
menu.inc
,
main.inc
og
foother.inc
som er beskrevet kort ovenfor. Denne
inkluderingen gjøres ved å benytte en funksjon i PHP som heter
require
. Det er en metode
for å hente inn filer som inneholder kode. På denne måten kan man sette standardisert kode
ut i egne filer, slik at man slipper å skrive tilsvarende kode flere steder. Samtidig forenkler
man oppdatering ved at man kan oppdatere en fil, så endres det i alle filer som importerer
den aktuelle filen.

Back to top


1.6 Main.php
Main.php
er den filen som til enhver tid vises i hovedvinduet. Den består av en stor
switch
statement
.
Switchen
består av 5
caser
. En
case
for hver link på hovedmenyen. Hver
case
inneholder i tillegg en spørring for å finne ut om det finnes sub-meny til den valgte linken.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 9
Hvis det finnes sub-meny, så åpnes den første sub-meny siden. Koden som står i hver
case
ser du nedenfor.
case 1:
if($har_sub > 1)
{
if(empty($sub))
{
$sub = 1;
$is = file_exists("inc/case_".$page."_".$sub.".inc");
 
if($is == 1)
  
  
  
  
  
  
  
  
include("inc/case_".$page."_".$sub.".inc");
 
  
  
else
 
  
  
  
page_error();
  
  
  
  
  
 
  
}
 
  
else
{
$is = file_exists("inc/case_".$page."_".$sub.".Inc");
if($is == 1)
include("inc/case_".$page."_".$sub.".inc");
 
  
else
 
  
  
  
page_error();
  
  
  
  
  
 
  
}
}
else
{
$is = file_exists("inc/case_".$page.".inc");
if($is == 1)
include("inc/case_".$page.".inc");
else
page_error();
}
break;
Hver fil som hentes har navn som gjør de lett å benytte i en
switch
. Hver fil i hovedmenyen
heter
case_1.inc
til
case_6.inc
. Filene i sub menyen til for eksempel
case_2.inc
heter
case_2_1.inc
og
case_2_2.inc
. På grunn av denne navngivingen kan vi lage en kode som
vil fungere uansett hvor mange sub-elementer som finnes i menyen.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 10
For å finne frem til riktig fil, sendes det med en eller to variabler når du klikker på en link.
Den første variabelen er
$page
. Den definerer hvilken hovedside man skal hente inn. I
tillegg brukes variabelen
$sub
for å finne riktig sub-fil. Dette gjør at vi kan sette dynamiske
stier som for eksempel
include(”inc/case_”.$page.”_”.$sub.”.inc”)
som vil peke på
case_2_1.inc
hvis variabelen
$page
er 2 og variabelen
$sub
er 1.
Det sjekkes også hele tiden på om filen som det søkes etter finnes. Hvis den ikke finnes,
kjøres det en funksjon som heter
page_error()
. Den skriver enkelt og greit ut en
feilmelding om at siden ikke finnes.
Hvis ingen av sidene
case_$page_$sub.inc
skrives ut, altså at $page ikke har noen verdi,
vil det sjekkes om variabelen
$article
har en verdi. I så fall betyr det at en artikkel skal
åpnes, og filen
artikkel.inc
lastes.

Back to top


1.7 Header_index.inc
Denne filen inneholder HTML-headeren som brukes i
index.php
. Den inneholder kun
standard HTML-tags for å hente stylesheet, favorittikon, tittelen på siden, metadata og en
liten style-tag som importerer den gif-filen som danner bakgrunnen som flyter rundt selve
hoveddelen av siden. Selve gif-bildet er kun 40 x 5 pixler stort men settes ved siden av
hverandre for å fylle skjermen uansett størrelse og oppløsning på skjermen. Dette fører
også til raskere lasting av siden.

Back to top


1.8 Header.inc
Samme funksjon som
header_index.inc
. Denne filen inneholder den headeren som
inkluderes i alle andre filer enn
index.php
. I tillegg er det en liten if-spørring som
kontrollerer om det er en av de to sidene for PS arrangement som er åpne. I så fall er det en
annen stylesheet-fil som åpnes. Dette er kun for å få inn PS-logoen på bakgrunnen på
sidene som omhandler PS.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 11

Back to top


1.9 Connect.inc
Denne filen inneholder den koden som må til for å koble seg opp til MySQL databasen.
Etter forsøket på oppkobling kontrolleres det ved hjelp av en if-spørring om databasen
finnes og om oppkoblingen ble vellykket. Hvis det mot formodning ikke fungerer, åpnes
filen
feil.inc
.

Back to top


1.10 Feil.inc
Filen her er svært liten og gjør ikke annet enn å sende brukeren til filen
feil.php

Back to top


1.11 Feil.php
Denne filen inneholder en feilmelding som enkelt og greit skriver ut logoen til En Kopp og
en melding som sier at det ikke ble oppnådd kontakt med databasen.

Back to top


1.12 Overskrift.inc
Dette er en fil som henter ut overskriften på siden. Det er lagt opp slik at overskriften på
siden automatisk er den samme som navnet på siden. Det vil si det som står på linken i
menyen. Denne filen henter rett og slett ut navnet på siden fra tabellen
pagemenu
. Det
skrives ut både hovedoverskrift og en underoverskrift. For eksempel skrives det ut ”Om
oss” som hovedoverskrift og ”Hvem er vi?” som underoverskrift på siden over de ansatte.

Back to top


1.13 Uke.inc
Denne filen beregner ukedag ut fra datoen som er gitt og oversetter ukedagen fra engelsk
til norsk. Dette er gjort på grunn av at man ikke legger inn ukedagen når man legger inn et

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 12
nytt arrangement. Men det er greit at ukedagen blir skrevet ut på websiden. Derfor ble
denne filen opprettet. Ved at man kun lagrer dato i databasen og at ukedag genereres ut fra
datoen, eliminerer man også en mulig feilkilde med tanke på at dag og dato kunne blitt feil
ved manuell innlegging.
1.14 Clean_text.inc

Back to top


Filen inneholder en funksjon som rensker bort eventuelle HTML- eller PHP-tags. Dette er
for å unngå at det skrives inn kjørbar kode i noen av input-feltene.
Funksjonen bruker de ferdige php-metodene
strip_tags
og
htmlspecialchars
.

Back to top


1.15 Style.css, style_main.css og style_ps.css
Disse tre filene inneholder alt av formateringer med tanke på ulike teksttyper, tabeller,
bakgrunner, rullefelt, linker, lister, bilder, forms og så videre. For at siden skal tilfredsstille
kravene til XHTML standarden, er det opprettet klasser (class) for alle ulike typer av
formateringer. Dette kan for eksempel være ulike former for vanlig tekst. Der ligger
p
som
er vanlig tekst som er blokkjustert og 12 pixlers punktstørrelse. I tillegg ligger
p.small
og
p.small_center
som har henholdsvis 9 pixlers punktstørrelse og venstrejustert tekst og 9
pixlers punktstørrelse og sentrert tekst.
Style.css
er den stylesheeten som brukes på filene
header_img.inc
,
header.inc
,
foother.inc
og det som er rundt selve siden.
Style_ps.css
er den stylesheeten som brukes på sidene som
omhandler PS-arrangement.
Style_main.css
er den stylesheeten som brukes på alle andre
sider.

Back to top


1.16 Case_X_Y.inc
Alle filene som har filnavn som begynner på
case
er de filene som genererer eller
inneholder det innholdet som vises på hovedsiden. Kommer ikke til å kommentere alle
disse filene, men filene for signering av gjestebok og kontaktskjema nevnes nedenfor.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 13
Årsaken til at filnavnene er på en slik form og ikke har deskriptive navn, er at det skal være
mulig å lage koden i
switchen
i filen
main.php
dynamisk. Ved å standardisere formen på
filnavnene og ha tallverdier som identifikator kan man opprette en ny
case_X_Y.inc
fil uten
å legge til eller endre koden i
main.php
. Dette gjør at det kan opprettes inntil 6 hovedsider
med inntil 6 undersider for hver hovedside med den oppbygging som er i dag.

Back to top


1.17 Case_5_3.inc
Denne filen inneholder et kontaktskjema. Det er et skjema som inneholder tekstfelter for
navn, e-post, emne og melding. Det kontrolleres at alle feltene er utfylt. I tillegg
kontrolleres det at det er en e-post adresse med gyldig format og om e-post serveren er en
gyldig server. Grunnen til denne kontrollen er at en melding som sendes via
kontaktskjemaet gjerne skal besvares per e-post. Derfor er det vesentlig at e-post adressen
som skrives inn er riktig. Eventuelle feil kommer i en punktliste til venstre for inputfeltene.
Når alle feltene godkjennes, sendes meldingen som vanlig e-post til adressen: post@en-
kopp.no.

Back to top


1.18 Case_6_1.inc
Dette er filen som er for signering av gjesteboken. Den inneholder tekstfeltene navn, sted,
e-post, hjemmeside og hilsen. Før en hilsen legges inn kontrolleres det at det er skrevet inn
navn og hilsen. Hvis det mangler, skrives det ut en kolonne til høyre for inputfeltene hvor
eventuelle mangler kommer ut som en punktliste.

Back to top


1.19 Artikkel.inc
Denne filen er som navnet tilsier den filen som viser artikler eller ”Hva har skjedd” som
det heter på websiden. Når man er på siden som viser alle artikler, kan man klikke på
linken ”Hele saken”. Da åpnes
artikkel.inc
og innholdet i den valgte artikkelen hentes
frem. Dette gjøres ved å sende ved en id-verdi for den aktuelle artikkelen når man klikker
på linken.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 14
Oppsettet på artiklene er standardisert. Hvis artikkelen inneholder bilder, settes det inn et
bilde for hvert avsnitt. Bildene høyre/venstre justeres annenhver gang for å skape best
mulig balanse på siden. Denne justeringen gjøres ved at det er satt en variabel med verdien
1. 1 betyr at det venstrejusteres, og alt annet betyr at det høyrejusteres. For hvert avsnitt
multipliseres denne variabelen med -1. Det fører til at variabelen vil endre mellom å ha
verdien 1 og -1 og dermed vil bildene annenhver gang venstre- eller høyrejusteres.
Svakheten med dette systemet er at det er nødt til å være minst like mange avsnitt i
artikkelen som det er bilder. Har man for eksempel tre avsnitt og fire bilder, vil ikke det
siste bildet skrives ut. Er det omvendt, vil bildene skrives ut i de første avsnittene, så vil
påfølgende avsnitt komme uten noen bilder.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 15

Back to top


2 Dokumentasjon av kildekoden til admin.systemet
Nedenfor følger en beskrivelse av kildekoden til administrasjonssystemet til www.en-
kopp.no. Vi vil også her gå gjennom de aller fleste filene, og forklare hva de ulike filene
utfører for slags oppgaver.
Her vil bruker være definert som en person med brukernavn og passord til
administrasjonssystemet www.en-kopp.no/admin.

Back to top


2.1 Index.php
Index.php
er en fil som er bygd opp av en mengde if-spørringer. Hver if-spørring sjekker
verdien til en variabel vi har kalt
$action
. I tillegg sjekkes det for gyldig
cookie
i hver if-
spørring.
Det er to sett med if-spørringer. Et ytre og et indre. Det ytre settet har som oppgave å
verifisere en bruker, mens det indre settet brukes til navigering på siden etter at man er
innlogget. Det ytre settet består av totalt tre spørringer og en standardverdi. Hvis ingen
gyldig
cookie
finnes og variabelen
$action
er tom, åpnes det et innloggingsvindu hvor
bruker må skrive inn brukernavn og passord. Når brukeren klikker på ”Logg Inn” vil
index.php
lastes på nytt og variabelen
$action
vil ha verdien ”login”. Da vil filen
login.inc
hentes.
Login.inc
kommer vi tilbake til senere. Videre er det en utloggingsfunksjon som
aktiveres hvis
$action
er lik ”logout”. Da tilordnes
cookien
verdien ”loggedout” og det
settes negativ tid på gyldigheten. Dermed vil man bli sendt til innloggingssiden igjen.
Den siste if-spørringen i det ytterste settet sjekker om det finnes en
cookie
og om verdien
til
cookien
er gyldig. Dette gjøres ved hjelp av filen
validate.inc
.
Validate.inc
kommer vi
tilbake til senere. Hvis
cookien
tilfredsstiller kravene, kommer man inn i det indre settet
med if-spørringer. Her importeres filene
header.inc
,
hjelp_id.inc
,
variabler.inc
og
clean_text.inc
. Det indre settet med if-spørringer inneholder en if-spørring for hver side
som finnes på administratorsystemet. I hver if-spørring spørres det etter verdien til

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 16
variabelen
$action
og det kontrolleres nok en gang om
cookien
er gyldig. Variabelen
$action
skal inneholde filnavnet til den filen som skal åpnes. Inne i hver enkelt if-spørring
brukers det en
require
for å hente den forespurte siden. Default-verdien i den indre løkken
er hovedsiden,
main.inc
, som bare ønsker velkommen til administrasjonssystemet.

Back to top


2.2 Login.inc
Login.inc
kontrollerer brukernavn og passord opp mot brukerdatabasen (tabellen
users
) og
ser om det er et treff der. Hvis det er en gyldig bruker settes det en
cookie
med navn
”admin”, verdien settes til å være brukernavnet og gyldigheten settes til to timer frem i tid.
Index.php
lastes deretter på nytt. Hvis brukeren ikke er registrert i databasen, skrives det ut
en feilmelding, og brukeren må prøve på nytt.

Back to top


2.3 Validate.inc
Denne filen kontrollerer at det til enhver tid eksisterer en gyldig
cookie
for å verifisere at
brukeren skal ha tilgang. Filen tilordner variabelen
$user
brukernavnet som verdi og den
variabelen brukes igjen i hver if-spørring for å sjekke om brukeren har gyldig tilgang.

Back to top


2.4 Rettigheter.inc
Dette er en fil som kontrollerer hvilke rettigheter en gyldig bruker har. På denne
administrasjonssystemet finnes det to typer tilgang. Det er en vanlig bruker og en med alle
rettigheter. Forskjellen ligger i brukeradministrasjonen. En vanlig bruker kan ikke endre
brukerdata, opprette eller slette brukere. En bruker kan kun endre sitt eget brukernavn og
passord. En med alle rettigheter kan opprette, slette og redigere brukerdata, inkludert det å
sette nytt brukernavn og passord til alle brukere (i tilfelle en bruker har glemt passordet sitt
eller lignende).
Validate.inc
bruker verdien i
cookien
til å finne den påloggede brukeren. I brukerdatabasen
er det videre en verdi som angir rettighetene. Verdien 0 er vanlige brukerrettigheter og

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 17
verdien 1 er alle rettigheter. De valgene på menyen som er begrenset for administratorer,
nyttiggjør seg av denne filen.

Back to top


2.5 Header.inc
Denne filen er, i likhet med tilsvarende fil på websiden, en fil som inneholder den
standardinformasjonen som skal være med i de fleste filene. Det er dokumenttype,
importering av stylesheet etc. I tillegg til denne standardinformasjonen importeres også
navigasjonsmenyen som er øverst på siden. Denne menyen er et Java-script som er skilt ut
i egne filer. Filen inneholder også et Java-script med funksjonen
PicPop(url)
. Det er en
funksjon som brukes i forbindelse med hjelpefunksjonen som er implementert på hver side.
Den gjør at hjelp for hver enkelt side åpnes i et standardisert popup-vindu.

Back to top


2.6 Variabler.inc
Dette er bare en fil som inneholder ulike fil-stier. Dette forenkler ting hvis
mappestrukturen på serveren endres. Flyttes en mappe, endrer man stien i denne filen, så er
det automatisk endret på alle andre filer som nyttiggjør seg av denne stien.

Back to top


2.7 Style.css
Samme funksjon som css-filene på websiden. Her er alle formateringer med tanke på tekst,
tabeller, bilder, hyperlinker etc. definert.

Back to top


2.8 Hjelp_id.inc
Denne filen inkluderes også i
index.php
. Det er den filen som skriver ut det
spørsmålstegnet som er i øvre høyre hjørne på alle sidene. Det er her Java-funksjonen
PicPop(url)
brukes. Dette hjelpeikonet peker til en hver tid til en rad i tabellen hjelp som
har samme id som filnavnet til den siden du er på.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 18

Back to top


2.9 Hjelp.php
Den filen som åpnes hvis man benytter seg av hjelpefunksjonen ved å klikke på
spørsmålstegnet i øvre høyre hjørne. I denne filen søkes det etter den riktige raden i
tabellen
hjelp
med hjelp for den filen brukeren benytter seg av. Hvis brukeren holder på å
opprette en ny bruker, søkes det etter id-verdien
bruker_ny
i tabellen, og det som er lagret i
den raden skrives ut. Hvis det ikke er lagt inn hjelp for den aktuelle filen, skrives det ut en
standard-melding om at det ikke finnes hjelp.

Back to top


2.10 Header_hjelp.inc
En headerfil med standardinformasjon for hjelpesiden. Har en egen headerfil her på grunn
av at det skal brukes en annen bakgrunn og litt andre filbaner til stylesheet etc.

Back to top


2.11 Hjelp_all.php
Dette er en fil hvor alt av hjelp er samlet på en side. Denne filen får man frem ved å velge
hjelp i navigasjonsmenyen på siden. Her skrives det ut en indeks hvor man kan klikke på
det temaet man ønsker hjelp om og få fram hjelpen. All informasjonen her hentes fra
samme tabell som tidligere nevnte hjelpefunksjon, men her er alt samlet på ett sted.

Back to top


2.12 Arrangement_ny.php
Filen inneholder et sett med inputfelt for å legge inn et nytt arrangement. Det er en felles
side for PS-arrangement og andre arrangement. Under innleggingsprosedyren gjøres det et
valg på hvilken type arrangement det er. Feltene dato, overskrift og beskrivelse av
arrangementet er påkrevd å være med, og det kontrolleres om feltene inneholder verdier.
Det blir i tillegg automatisk lagret når arrangementet ble lagt inn og hvem som la det inn.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 19

Back to top


2.13 Arrangement_rediger.php
Denne filen er delt inn i flere deler. Som standard vises det en oversikt over alle
arrangementene som er lagt inn. Her er det lagt opp slik at PS-arrangement vises på en
side, og andre arrangement vises på en annen side. Dette er kun for å få det mer oversiktlig
når det blir mange arrangement. For hvert arrangement som er listet opp er det en knapp
man kan trykke på for å vise arrangementet i redigeringsmodus.
Redigeringsmodus for et arrangement er en tilsvarende fil som
arrangement_ny.php
, men
her har input-feltene de verdiene som ligger lagret i databasen. Alle disse dataene er det
mulig å endre på. Her er det samme kontroll som i arrangement_ny.php når det gjelder de
feltene som er påkrevd å ha med. Man har også mulighet til å endre på om det er PS-
arrangement eller ikke. Når man har foretatt ønskede endringer er det bare å klikke
oppdater, så oppdateres databasen, og de nye dataene skrives ut på skjermen.

Back to top


2.14 Arrangement_slett.php
Denne filen har samme visning som den første visningsdelen av filen
arrangement_rediger.php
. Men istedenfor en redigerknapp, er det her en slettknapp.
Trykker man på slett, vil man få spørsmål om man skal slette eller ikke. Hvis man sletter
en hendelse, kan man ikke på noen måte få den tilbake igjen.

Back to top


2.15 Arrangement_vis.php
Dette er en fil som er bygd opp på samme måte som den filen som viser arrangement på
selve websiden. Denne funksjonen er lagt inn bare for å se hvordan det vil bli seende ut, og
for å se hva som ligger inne.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 20

Back to top


2.16 Kalender.inc
Figur 5: Kalender applet.
Dette er en fil som importeres til filen
arrangement_ny.php
. Det er en fil som nyttiggjør
seg av en java-applet. Denne java-appleten er en kalender som man bare kan klikke på for
å velge den aktuelle datoen for arrangementet. Dette er ikke noen nødvendighet, men det
forenkler ting og minsker muligheten for at det settes inn feil dato. Dette er en ferdiglaget
funksjon som vi ikke skal ta æren for. Det eneste vi har gjort er å endre på stylesheeten for
kalenderen og oversatt ukedager og måneder til norsk.
Kalenderen består videre av filene
ccalendar.class
og
ccalendar.jar
.

Back to top


2.17 Artikkel_ny.php
Denne filen består også av en rekke inputfelt. Det er felter for overskrift, ingress, innhold
og inntil fire bilder. De tre førstnevnte feltene er påkrevd å ha med. Eventuelle bilder som
skal være med velges fra rullegardin-felter. Det er de bildene som ligger i bildemappen på
webserveren som er tilgjengelige. Med andre ord må man laste opp eventuelle bilder før
man kan legge bilder inn i en artikkel.

Back to top


2.18 Artikkel_rediger.php
Denne filen viser først alle artikler som er lagt inn med overskrift, bildefiler og ingress. Så
velger man hvilken artikkel som skal redigeres ved å klikke på rediger-knappen. Da får
man frem samme skjermbilde som for å legge inn ny artikkel, bare at de dataene som er

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 21
lagt inn i databasen skrives ut i de respektive feltene. Når det som skal gjøres er gjort,
klikker man på oppdater, så er databasen oppdatert med de nye dataene.

Back to top


2.19 Artikkel_slett.php
Denne filen lister først opp alle artiklene, så er det bare å klikke slett for å slette en artikkel.
Da vil det komme spørsmål om du vil slette artikkelen for å unngå at man sletter en
artikkel ved et uhell.

Back to top


2.20 Artikkel_vis.php
Dette er en fil som viser artiklene på samme måte som de vil bli seende ut på websiden.
Her vises overskrift, eventuelt bilde og ingress, så kan man klikke på en link for å lese hele
saken. Det er bare en funksjon for å på en enkel måte se om det ble som det skulle.

Back to top


2.21 Nyhet_ny.php
I likhet med foregående filer er også dette en fil med et sett input-felt. Her skal det skrives
inn overskrift og et innhold. I tillegg kan det legges inn et bilde. Både overskrift og innhold
må være med for at nyheten skal legges inn. Her velges også eventuelt bilde fra et
rullegardin-felt, og et bilde må derfor være lastet opp på webserveren før det kan legges
inn.

Back to top


2.22 Nyhet_rediger.php
Her listes alle nyhetene opp på en side, så er det bare å klikke på rediger på den nyheten
man ønsker å redigere. Da vil man få opp samme skjermbilde som ved innlegging av
nyheter, bare at tekstfeltene har det innholdet som ligger i databasen. Når man har endret
det som skulle endres, klikker man på oppdater, så er databasen oppdatert med de nye
endringene.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 22

Back to top


2.23 Nyhet_slett.php
Her listes alle nyhetene opp på en side, så er det bare å klikke ”slett” på den nyheten som
skal slettes. Da vil du også her få spørsmål om du vil slette den valgte nyheten for å unngå
at nyheter slettes ved et uhell.

Back to top


2.24 Nyhet_vis.php
Denne filen viser alle nyhetene slik som de ser ut på websiden. Dette er for å raskt kunne
gi inntrykk av hvordan det ble seende ut og for å kunne se hvilke nyheter som ligger ute.

Back to top


2.25 Meny_ny_gruppe.php
Menyen med mat og drikke er satt sammen av to ulike elementer. Det er menygrupper og
menyelementer. En menygruppe er for eksempel kaffe. Menygruppen kaffe kan for
eksempel ha menyelementene Espresso, Machiato og Americano. Ved hjelp av denne filen
kan man opprette en ny menygruppe. Man skriver inn navn på gruppen, eventuell
kommentar som vil komme i parentes bak gruppenavnet ved visning og man kan velge
hvor på menyen gruppen skal plasseres. For eksempel nummeret over gruppen for te. Før
databasen oppdateres sjekkes det om det er skrevet inn et navn på gruppen og det sjekkes
om det allerede finnes en menygruppe tidligere med samme navn. Hvis det gjør det, får
man en feilmelding, og må gå tilbake for å endre.

Back to top


2.26 Meny_nytt_element.php
Ved hjelp av denne filen kan man opprette et nytt menyelement. Her velger man først
hvilken menygruppe elementet skal opprettes i, deretter skriver man inn navn, eventuell
kommentar, pris, eventuell alternativ pris og man velger hvor i listen elementet skal skrives
ut. Sistnevnte velges fra et rullegardin-felt.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 23

Back to top


2.27 Meny_rediger.php
I denne filen kan man redigere hele menyen. Hele menyen skrives ut i den rekkefølgen
som er satt, men alt er satt inn i tekstbokser og rullegardinfelt. Her kan man endre navn,
endre, legge inn eller slette kommentarer, endre rekkefølge på menygruppe eller
menyelement, flytte et menyelement til en annen menygruppe etc. Bakdelen med filen er at
man ikke kan redigere mer enn en rad av gangen. Man gjør endringer i en rad, og klikker
på oppdater-knappen som er til venstre for raden. Da gjøres endringene i den raden og filen
lastes på nytt. Denne filen er litt tung å laste på grunn av at det er så mange inputfelt, men
vi har kommet frem til at dette er en funksjon som skal brukes relativt sjeldent. I tillegg til
å redigere, kan man også slette menygrupper eller menyelementer. Hvis man sletter en
menygruppe, slettes også alle menyelementene som ligger under den aktuelle gruppen. I
tillegg kan man opprette nye menyelement i hver enkelt gruppe.

Back to top


2.28 Meny_vis.php
Dette en fil som viser menyen slik som den blir vist på websiden.

Back to top


2.29 Bilde_upload.php
Dette er en fil som muliggjør opplasting av bilder til serveren. Brukeren kan browse etter
bilder på sin egen disk, sette eventuelt nytt navn på bildet og velge maksimal størrelse på
bildet. Brukeren kan velge mellom maksimal bredde/høyde på bildet på 150, 200, 250 eller
500 pixler. Hvis bildet skal beholde den størrelsen det har, velger brukeren bare * på
bredde og høyde. Filen støtter opplasting av filer av typen JPG, PNG og SWF. Det kunne
også vært støtte for GIF, men da kunne vi ikke brukt PHP-funksjonen
ImageCreateTrueColor()
. Dette er en funksjon som bedrer kvaliteten på bilder som endres
i størrelse betraktelig. Derfor prioriterte vi kvaliteten fremfor kompatibilitet for GIF.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 24
Slik vi har lagt opp filen, lagres det et bilde i en mappe på serveren som er satt av til bilder.
Det lagres også et bilde som er i den originale størrelsen, men det slettes automatisk på
grunn av begrenset plass på serveren hvor websiden ligger.

Back to top


2.30 Bilde_rediger.php
Dette er en fil hvor alle bildene skrives ut, samt at man ser filnavn, bredde og høyde. I
tillegg har man for hvert bilde mulighet til å slette eller sette nytt navn på bildet. Hvis man
velger å slette et bilde vil det først sjekkes om bildet er i bruk i noen artikler, nyheter eller
brukerbeskrivelser. Hvis det er i bruk får man ikke lov til å slette filen. Hvis det ikke er i
bruk noe sted, får man spørsmål om man virkelig vil slette bildet, før det eventuelt blir
endelig slettet.
Velger man å sette nytt navn på bildet, får man opp et inputfelt hvor man skal skrive inn
nytt filnavn uten filending. Når det endres filnavn på et bilde, blir samtidig alle database-
oppføringer som nyttiggjør seg av det aktuelle bildet oppdatert med det nye filnavnet, slik
at det ikke skal bli noen feil i visningen på websiden.

Back to top


2.31 Bilde_vis_filnavn.php
Denne filen lister bare opp alle bildefilene som ligger på webserveren, samt bredde og
høyde i pixler og filstørrelse i byte. I tillegg viser den samlet filstørrelse av alle filene.

Back to top


2.32 Bruker_ny.php
Denne filen muliggjør oppretting av nye brukere av administrasjonssystemet og er kun
tilgjengelig for brukere med administratorrettigheter. Fornavn, etternavn, brukernavn og
passord må skrives inn. En bruker blir som default satt med vanlige brukerrettigheter, men
ved oppretting kan man også velge at brukeren skal tildeles administratorrettigheter.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 25
I tillegg kan man skrive inn annen brukerinformasjon. Dette er stilling, e-post adresse,
bilde og informasjon om brukeren. Den alternative informasjonen brukes på siden ”Om
oss/Hvem er vi?” på selve websiden. Ved innlegging av passord må det skrives inn to
ganger for å unngå skrivefeil. I tillegg må passordet være på minimum 6 tegn. Passordet
krypteres ved hjelp av MySQL funksjonen
password
når det legges inn i databasen.
Det kontrolleres også at brukernavnet som skrives inn ikke finnes fra før.
2.33 Bruker_rediger.php

Back to top


Dette er en fil hvor brukerdata kan redigeres. Den er kun tilgjengelig for brukere med
administratorrettigheter. Her får man først listet opp alle registrerte brukere. Man markerer
en av brukerne og klikker på rediger. Da får man opp tilsvarende vindu som for oppretting
av brukere bare at inputfeltene har de verdiene som er satt i databasen. Her er det bare å
redigere all den innformasjonen man ønsker. Man kan også her tildele eller fjerne
administratorrettigheter for en bruker.
Det er også mulig å sette nytt passord uten å vite det gamle passordet. Dette er tilfelle en
bruker glemmer passordet sitt.

Back to top


2.34 Bruker_slett.php
Dette er også en fil som er tilgjengelig kun for administratorbrukere. Her får man opp en
liste med alle ansatte, så kan man markere den man vil slette og klikk på slett. Man får
selvfølgelig ikke opp seg selv, siden det vil være uheldig å kunne slette sin egen
brukerkonto.

Back to top


2.35 Bruker_vis.php
Dette er en fil som lister opp de brukerne som er registrert. Man får se fornavn, etternavn,
brukernavn og om de har administratorrettigheter eller ikke.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 26

Back to top


2.36 Endre_bnavn_pwd.php
Dette er en fil som lar brukerne endre sine egne brukernavn og passord. For å bytte
brukernavn sjekkes det ikke mer enn om brukernavnet finnes fra før. Da vil brukeren få
opp en feilmelding.
Ved bytte av passord må brukeren skrive inn nåværende passord, samt et nytt passord to
ganger. Filen sjekker så om det gamle passordet er riktig og om de to instansene av det nye
passordet er identiske.
Når databasen er oppdatert, vil brukeren være nødt til å logge seg inn på nytt med det nye
brukernavnet og/eller passordet.

Back to top


2.37 Bruker_selv.php
Dette er en fil som tillater brukeren å endre sine egne brukerdata. Da er ikke
påloggingsdata medregnet. Brukeren har mulighet til å endre eget navn, e-post adresse,
info og bilde. Denne filen ligger tilgjengelig på webområdet til www.en-kopp.no, men etter
ønske fra oppdragsgiveren, ble siden tatt vekk fra menyen slik at det kun er
administratorbrukere som kan endre data om brukere.

Back to top


2.38 Gjestebok_slett.php
I denne filen kan man slette hilsninger i gjesteboken. Det er ikke lagt opp til å kunne
redigere hilsninger i gjesteboken, men det er greit å kunne slette hvis det skulle legges inn
hilsninger som ikke bør ligge ute av ulike grunner.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 27

Back to top


3 Testdokument
Websiden har på ulike måter blitt testet både under og etter implementasjon.
Webprogrammering består av små enheter som hele tiden blir testet under implementasjon,
derfor er alle enhetene testet igjennom implementasjonsprosessen. I tillegg er systemet som
helhet testet under utformingen av brukerveiledningen i og med at alle operasjoner på
systemet er foretatt for å få skjermbilder av de ulike delene.
I tillegg til denne testingen som er foretatt gjennom implementasjon og brukerveiledning,
har flere personer fått brukernavn og passord til administrasjonssystemet og blitt satt til å
teste siden. Denne delen av testingen har også vært litt for å se om siden er intuitiv og lett å
forstå for folk som ikke er spesielt datakyndige.
I tillegg til den nevnte testingen, har vi også gjennomført en mer systematisk test ut fra de
testtilfellene som er satt opp nedenfor. Disse testtilfellene er basert på
administrasjonssystemet. Selve websiden har vi også testet ved å se at den informasjonen
som er skrevet inn på administrasjonssystemet kommer ut på websiden på riktig måte. Da
tenker vi på plassering av informasjon, håndtering når det er informasjon som mangler og
så videre.

Back to top


3.1 Test case logg inn/logg ut
Starttilstand:
Brukeren har fått tildelt brukernavn og passord, og brukeren befinner seg på innloggings
siden til administrasjonssystemet.
Testforløp:
1. Brukeren skriver inn feil brukernavn og passord.
2. Systemet sjekker og skriver ut feilmelding.
3. Brukeren skriver inn riktig brukernavn og passord.
4. Systemet logger inn brukeren og oppretter en cookie med 2 timers gyldighet.
5. Brukeren klikker ”Logg ut”.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 28
6. Systemet setter cookien til negativ gyldighet og viser innloggings siden igjen.
7. Brukeren prøver å komme seg inn på siden igjen.
8. Systemet går hele tiden tilbake til innloggings siden.
Testresultat/feil:
Slet en god del med å bli skikkelig logget av. Fikk mye feilmeldinger med tanke på
cookien som opprettes. Men dette viste seg etter hvert å skyldes serveren Bundy som er IT-
studentene sin server. Det var på denne serveren vi implementerte siden underveis. Da vi
byttet server, fikk vi denne funksjonen til å fungere som den skulle.

Back to top


3.2 Test case logg inn/automatisk logg ut
Starttilstand:
Brukeren har fått tildelt brukernavn og passord, og brukeren er på innloggingssiden til
administrasjonssystemet.
Testforløp:
1. Brukeren skriver inn brukernavn og passord.
2. Systemet logger inn brukeren og oppretter en cookie med to timers gyldighet.
3. Brukeren logger seg ikke ut.
4. Etter to timer prøver brukeren å utføre en operasjon på siden, men har blitt logget ut
av systemet.
Testresultat/feil:
Som nevnt i punkt 3.1, var det en del problemer med hensyn til cookien. Automatisk
utlogging etter den fastsatte tidsperioden fungerte ikke på webserveren Bundy, men dette
ble fikset når vi la den ut på ny server.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 29

Back to top


3.3 Test case opprett ny bruker
Starttilstand:
En bruker med administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Ny bruker” på menyen.
2. Systemet viser siden for å opprette bruker.
3. Brukeren skriver inn de dataene som skal legges inn men prøver å utelate enten
fornavn, etternavn, brukernavn, passord eller skrive ulike passord i de to passord
feltene.
4. Systemet fanger opp de ulike feilene og manglene og tvinger brukeren til å skrive
inn de manglende dataene.
5. Når alt er på plass opprettes brukeren og lagres i tabellen users.
6. Sjekker at brukeren er opprettet ved å velge ”Vis brukere” på menyen.
Testresultat/feil:
Ingen feil.

Back to top


3.4 Test case rediger bruker
Starttilstand:
En bruker med administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Rediger bruker” på menyen.
2. Systemet viser alle brukere som kan redigeres.
3. Brukeren velger den brukeren som skal redigeres.
4. Systemet viser de registrerte dataene på den valgte brukeren i redigeringsmodus.
5. Brukeren endrer ulike data og klikker på ”Oppdater”.
6. Sjekker at dataene er endret ved å gå inn på rediger bruker igjen.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 30
Testresultat/feil:
Ingen feil.

Back to top


3.5 Test case vis bruker
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger vis brukere.
2. Systemet viser alle registrerte brukere.
Testresultat/feil:
Ingen feil.

Back to top


3.6 Test case slett bruker
Starttilstand:
En bruker med administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Slett bruker” på menyen.
2. Systemet lister opp alle redigerte brukere unntatt den brukeren som er inn logget.
3. Brukeren velger den som skal slettes
4. Systemet spør om den valgte brukeren virkelig skal slettes.
5. Brukeren velger først ”Ikke slett”.
6. Systemet avbryter slettingen.
7. Brukeren utfører samme prosedyre på nytt og velger denne gangen ”Slett”.
8. Systemet sletter brukeren og alle registrerte data om brukeren.
Testresultat/feil:
Ingen feil.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 31

Back to top


3.7 Test case endre brukernavn/passord
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Endre passord/brnavn” på menyen.
2. Systemet viser siden for å endre brukernavn og passord.
3. Brukeren skriver inn nytt brukernavn og nytt passord.
4. Systemet sjekker hva som er skrevet inn, og om det som er skrevet inn tilfredsstiller
kravene. Hvis det gamle passordet er feil, to ulike innstanser av et nytt passord
skrives inn eller det nye passordet er for kort, skriver systemet ut feilmeldinger.
5. Brukeren skriver inn tilfredsstillende endringer.
6. Systemet oppdaterer brukerdatabasen og brukeren må logge seg inn på nytt med de
nye brukerdataene.
Testresultat/feil:
Oppdaget at det ikke var lagt inn kontroll på om et brukernavn var i bruk fra før hos en
annen bruker når man endret det. Dette ble umiddelbart endret.

Back to top


3.8 Test case ny nyhet
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Ny nyhet” på menyen.
2. Systemet viser siden for å legge inn nyhet.
3. Brukeren skriver inn overskrift men ikke innhold.
4. Systemet fanger opp at det mangler innhold, og skriver ut feilmelding.
5. Brukeren skriver inn innhold, men ikke overskrift.
6. Systemet fanger opp manglende overskrift, og skriver ut feilmelding.
7. Brukeren skriver inn overskrift, innhold, velger bilde og en intern link.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 32
8. Systemet lagrer nyheten i databasen og skriver ut det som er lagret.
9. Brukeren sjekker videre at nyheten er opprettet ved å velge ”Vis nyheter” på
menyen.
Testresultat/feil:
Ingen feil.

Back to top


3.9 Test case rediger nyhet
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Rediger nyhet” på menyen.
2. Systemet lister opp alle nyhetene som ligger på serveren.
3. Brukeren klikker ”Rediger” på den nyheten som skal redigeres.
4. Systemet viser den valgte nyheten i redigeringsmodus.
5. Brukeren redigerer innholdet og klikker ”Oppdater”.
6. Systemet oppdaterer databasen med det nye innholdet.
7. Brukeren kan kontrollere at det er redigert ved å vise alle nyhetene.
Testresultat/feil:
Ingen feil.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 33

Back to top


3.10 Test case vis nyheter
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Vis nyheter” på menyen.
2. Systemet viser alle nyhetene slik som de skal se ut på websiden.
Testresultat/feil:
Ingen feil.

Back to top


3.11 Test case slett nyhet
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Slett nyhet” på menyen.
2. Systemet lister opp alle nyhetene.
3. Brukeren klikker slett på den nyheten som skal slettes.
4. Systemet spør om den valgte nyheten skal slettes.
5. Brukeren velger ”Ikke slett”.
6. Systemet avbryter slettingen.
7. Brukeren gjentar overstående operasjoner og velger ”slett”.
8. Nyheten slettes fra databasen.
Testresultat/feil:
Ingen feil.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 34

Back to top


3.12 Test case ny artikkel
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Ny artikkel” på menyen.
2. Systemet viser de ulike tekstfeltene for innholdet i artikkelen.
3. Brukeren skriver inn det som skal skrives, men tester uten overskrift og uten
ingress.
4. Systemet fanger opp de ulike manglene.
5. Brukeren skriver inn de dataene som er nødvendige.
6. Systemet legger artikkelen inn i databasen.
7. Brukeren kan kontrollere ved å vise artikler.
Testresultat/feil:
Ingen feil.

Back to top


3.13 Test case rediger artikkel
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Rediger artikkel” på menyen.
2. Systemet lister opp alle artikler.
3. Brukeren velger ”Rediger” på en artikkel.
4. Systemet åpner artikkelen i redigeringsmodus.
5. Brukeren redigerer artikkelen.
6. Systemet oppdaterer databasen.
7. Brukeren kan kontrollere at dataene er endret ved å velge ”Vis artikler” på menyen.
Testresultat/feil:
Ingen feil.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 35

Back to top


3.14 Test case vis artikler
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Vis artikler” på menyen.
2. Systemet lister opp alle artiklene som er lagret i databasen slik de vil vises på
websiden.
Testresultat/feil:
Ingen feil.

Back to top


3.15 Test case slett artikkel
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Slett artikkel” på menyen.
2. Systemet lister opp alle artiklene.
3. Brukeren velger ”Slett” på en av artiklene.
4. Systemet spør om artikkelen skal slettes.
5. Brukeren avbryter eller godtar.
6. Systemet avbryter slettingen, eller sletter artikkelen fra databasen.
Testresultat/feil:
Ingen feil.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 36

Back to top


3.16 Test case nytt arrangement
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Nytt arrangement” på menyen.
2. Systemet åpner siden for å legge inn nytt arrangement.
3. Brukeren legger inn verdier, men utelater enten dato, overskrift eller beskrivelse
om hverandre.
4. Systemet fanger opp de ulike manglene, og skriver ut feilmelding.
5. Brukeren skriver inn data i alle feltene.
6. Systemet setter arrangementet inn i databasen.
7. Brukeren kan sjekke om alle dataene er lagt inn ved å vise arrangement.
Testresultat/feil:
Oppdaget at en variabel var satt feil etter en omorganisering av innloggingsfunksjonen.
Dette førte til at det ikke ble registrert hvem som opprettet og endret et arrangement.
Oppdaget også en feil med datofeltet som er vesentlig for sorteringen. Begge disse feilene
ble endret.

Back to top


3.17 Test case rediger arrangement
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Rediger arrangement”, og velger videre enten ”PS arrangement”
eller ”Andre arrangementer” på menyen.
2. Systemet lister opp alle arrangementer av den valgte typen.
3. Brukeren klikker ”Rediger” på det arrangementet som skal redigeres.
4. Systemet åpner arrangementet i redigeringsmodus.
5. Brukeren redigerer de dataene som skal redigeres.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 37
6. Systemet oppdaterer databasen.
7. Brukeren kan sjekke oppdateringen ved å vise arrangement.
Testresultat/feil:
Samme feil som for punkt 3.16, oppretting av arrangement.

Back to top


3.18 Test case vis arrangement
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Vis arrangement”, og velger ”PS arrangement” eller ”Andre
arrangement” på menyen.
2. Systemet lister opp alle arrangement av den valgte typen
Testresultat/feil:
Ingen feil.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 38

Back to top


3.19 Test case slett arrangement
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Slett arrangement”, og velger ”PS arrangement” eller ”Andre
arrangement” på menyen.
2. Systemet lister opp alle registrerte arrangement av den valgte typen.
3. Bruker klikker ”Slett” hendelse på et arrangement.
4. Systemet spør om det valgte arrangementet skal slettes.
5. Brukeren verifiserer eller avbryter.
6. Systemet sletter arrangementet fra databasen eller avbryter operasjonen.
Testresultat/feil:
Ingen feil.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 39

Back to top


3.20 Test case last opp bilde
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Last opp bilde.
2. Systemet viser siden for opplasting av bilder.
3. Brukeren velger ”Browse” og finner det bildet som skal lastes opp.
4. Brukeren setter eventuelt nytt navn på bildet og velger maksimal bredde og høyde.
5. Systemet laster opp bildet på serveren, gir bildet eventuelt nytt navn og setter ny
størrelse på bildet.
Testresultat/feil:
Ingen feil.

Back to top


3.21 Test case rediger bilde
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. En bruker velger ”Rediger bilde”.
2. Systemet lister opp alle bilder som ligger i bildemappen.
3. Brukeren velger nytt navn i rullegardinmenyen under ønsket bilde.
4. Brukeren skriver inn et nytt filnavn.
5. Systemet fanger opp eventuelle feil (punktum, mellomrom, æ, ø eller å).
6. Systemet oppdaterer filnavnet og alle databaseoppføringer hvor den aktuelle filen
benyttes.
7. Brukeren kan sjekke ved å vise filnavn og ved å se på en artikkel, nyhet eller
brukerbeskrivelse som bruker det aktuelle bildet.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 40
Testresultat/feil:
Avdekket at det ved å endre navn på et bilde som var i bruk naturlig nok ble en del
problemer med bilder som ble brukt i en nyhet, artikkel eller brukerbeskrivelse.
Implementerte derfor en funksjon som oppdaterer alle databaseoppføringer som nyttiggjør
seg av det filnavnet som blir endret.

Back to top


3.22 Test case slett bilde
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Bruker velger ”Rediger/slett bilder”.
2. Systemet lister opp alle bilder som ligger i bildemappen på serveren.
3. Brukeren velger slett på et bilde.
4. Systemet sjekker om bildet er i bruk i noen databaseoppføringer og hindrer i så
tilfelle at bildet slettes. Hvis ikke spør systemet om bildet skal slettes.
5. Brukeren verifiserer.
Testresultat/feil:
Oppdaget at det ikke var lagt inn noen hindring med tanke på det å slette bilder som var i
bruk i en artikkel. Dette ble det lagt inn en hindring for.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 41
3.23 Test case vis bilder

Back to top


Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Vis bilder”.
2. Systemet lister opp alle bilder som er i bildemappen på serveren, samt bredde,
høyde filstørrelse og summerer filstørrelsen.
Testresultat/feil:
Ingen feil.

Back to top


3.24 Test case nytt menyelement
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Nytt menyelement”.
2. Brukeren velger hvilken menygruppe elementet skal opprettes i.
3. Systemet viser siden for oppretting av menyelement.
4. Brukeren skriver inn den nødvendige informasjonen.
5. Systemet oppdaterer databasen.
6. Brukeren kan kontrollere ved å vise menyen.
Testresultat/feil:
Ingen feil.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 42

Back to top


3.25 Test case vis meny
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Vis meny”.
2. Systemet viser menyen slik som den ser ut på websiden.
Testresultat/feil:
Ingen feil.

Back to top


3.26 Test case rediger/slett meny
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”rediger/slett meny”.
2. Systemet viser hele menyen i redigeringsmodus.
3. Brukeren endrer tekst og rekkefølge.
4. Systemet oppdaterer endringene.
5. Brukeren sletter et menyelement.
6. Systemet fjerner elementet fra databasen.
7. Brukeren sletter en menygruppe.
8. Systemet fjerner menygruppen og alle tilknyttede menyelement fra databasen.
9. Brukeren flytter et menyelement til en annen menygruppe.
10. Systemet oppdaterer databasen.
11. Brukeren oppretter et nytt menyelement under en eksisterende menygruppe.
12. Systemet oppdaterer databasen.
13. Alle endringene kommer til syne umiddelbart etter redigering i alle tilfellene.

Implementasjonsdokument & Testdokument
11121 Prosjektoppgave Handelshøgskolen i Bodø 43
Testresultat/feil:
Avdekket en liten feil når man skulle endre rekkefølge på menyelementer. Etter at
menyelementet var flyttet, ble det utført en operasjon som i utgangspunktet skulle utføres
etter at et element hadde blitt slettet. Dette førte til at et menyelement fikk verdien 0 som
følgenummer i databasen, dermed ble det skrevet ut med to elementer med følgenummer 1
på administratorsystemet. Dette løste vi ved å legge inn en liten spørring ekstra for å hindre
at den siste operasjonen ble utført når det ikke var ment at den skulle utføres.

Back to top


3.27 Test case slett gjestebok oppføring
Starttilstand:
En bruker med eller uten administratorrettigheter er logget inn på administrasjonssystemet.
Testforløp:
1. Brukeren velger ”Slett hilsen”.
2. Systemet viser alle hilsninger i gjesteboken.
3. Brukeren klikker ”Slett” på den oppføringen som er ønskelig å slette.
4. Systemet sletter den valgte oppføringen
Testresultat/feil:
Ingen feil.

Back to top