Kapittel 1. Innledning og motivasjon. 1.1 Innledning. 1.2 Dynamiske, tjenerbaserte og interaktive nettsteder. 1.2.1 Dynamiske nettsider



Like dokumenter
1.2 Dynamiske, tjenerbaserte og interaktive nettsteder

Et forsøk på definisjon. Eksempel 1

Et forsøk på definisjon. Eksempel 1

Et forsøk på definisjon

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Et forsøk på definisjon

Verdier, variabler og forms

$antall_maaneder =12; Variablene $pris og $antall_maaneder i eksemplet ovenfor har

En enkel while-løkke. 1 of :28. 2 of :28. while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider:

Introduksjon til beslutningsstrukturer

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/ Vi holder orden på verdier med hjelp av variabler

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

}?> <!DOCTYPE... <html xmlns=" <head>... </head> <body> <p>nå skal vi printe hallo:</p> <?php //funksjonskall

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

file:///c:/users/michaelp/sites/dkdm/dw6/dreamweaver6.html

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Oblig 5 Webutvikling. Av Thomas Gitlevaag

Bruk av NetBeans i JSP-delen av Web-applikasjoner med JSP og JSF

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Forsvunnet katt webside

while-løkker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Tilgjegelighet av XHTML-forms

Introduksjon til programmering og programmeringsspråk. Henrik Lieng Høgskolen i Oslo og Akershus

the web Introduksjon Lesson

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Memoz brukerveiledning

Forelesning 23/9-08 Webprog 1. Tom Heine Nätt

Innstallasjon og oppsett av Wordpress

BAAN IVc. BAAN Data Navigator - Brukerhåndbok

Brukerveiledning for For å opprette en ny bruker vennligst send en epost til

Nedlasting og brenning av egne ISO-cd-er

Testrapport Prosjekt nr Det Norske Veritas

Kapittel 1. Kom i gang med PHP

Steg 1: Felix har forsvunnet!

Når en bruker skriver sitt navn ("Ole") i et form-element med name="fornavn" som attributt. klikker på submit-knappen

Brukerveiledning for identifisering med BankID

Presentasjon av hovedprosjekt ved HIST Nettbutikk

Introduksjon til programmering og programmeringsspråk

Kap 3: Anvendelser av Internett

(X)HTML, CSS og JavaScript HTML. Det første dokumentet Grunnleggende programmering i Java Monica Strand 26.

Inf109 Programmering for realister Uke 5. I denne leksjonen skal vi se på hvordan vi kan lage våre egne vinduer og hvordan vi bruker disse.

INTRODUKSJON HVEM ER DETTE FAGET FOR?...

Del 1: Overgang fra gammel hjemmeside til ny hjemmeside

1. XHTML. Innhold Innledning

Kom i gang med. Åpne nettleseren, gå til: Velg «New Project».

Argumenter fra kommandolinjen

Om du allerede kjenner Scratch og har en Scratchbruker kan du gå videre til Steg 1.

Bachelorprosjekt 2015

6105 Windows Server og datanett

Bruk av kildeavskrifter som er merket med grønn kule

6105 Windows Server og datanett

Administrering av SafariSøk

6105 Windows Server og datanett

Intro til WWW, HTML5 og CSS

6108 Programmering i Java. Leksjon 1. Introduksjon til programmering og til Java

For å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.

Dette er en demonstrasjonsside som vi skal bruke for å se litt nærmere på HTTP protokollen. Eksemplet vil også illustrere et par ting i PHP.

Huldt & Lillevik Ansattportal. - en tilleggsmodul til Huldt & Lillevik Lønn. Teknisk beskrivelse

Side 1. Sniggabo CMS brukermanual rev. 2

datatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål

1. Installasjon av web-tjener og teori

Læringsmål og pensum. v=nkiu9yen5nc

notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS

Oppdatering av eget innhold på venteromsskjermer BRUKERVEILEDNING

Søkemotorer. - en guide for en bedre rangering. Søkemotorer en guide for bedre rangering. InBusiness AS

Avinstallere Java: Windows 7 og eldre versjoner

Hvordan gjøre fjernhjelp til noen som ønsker hjelp med Hageselskapets portal? Av Ole Petter Vik, Asker Versjon

JavaScriptbibliotek. Introduksjon MVVC. Informasjonsteknologi 2. Gløer Olav Langslet Sandvika VGS

Installasjon av webtjener

Web fundamentals. Web design. Frontend vs. Backend Webdesign 17. januar Monica Strand

HTML5. Skjemaer på nettsider. Skjemaer med. Informasjonsteknologi 1 og 2. Gløer Olav Langslet Sandvika VGS

Saaghus kurs & foredrag. Endringsforståelse når endringer skaper indre og ytre reaksjoner. Mediehåndtering vær forberedt før media tar kontakt

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

HØGSKOLEN I SØR-TRØNDELAG

Aritmetiske operasjoner. Litt om forrige times øvelsesoppgaver

2 Om statiske variable/konstanter og statiske metoder.

Lotus Traveler - Manual for installasjon

JavaServer Pages (JSP)

Forprosjektrapport. Feilsøkingsverktøy for Homebase AS INNHOLD

Hvor og hvordan lagrer du mediafilene dine?

Mattespill Nybegynner Python PDF

Installasjonsveiledning. Phonzoadapter

Kjøre Wordpress på OSX

Min digitale infrastruktur

HTML og relasjonsdatabaser med PHP

1. Programmering: Hva og hvorfor? Scratch fra scratch Enkel programmering for nybegynnere

Forelesning inf Java 1

Kom i gang med Python

Installasjon av Nett-TV-meter Trinn for trinn

Introduksjon til nettverksteknologi

Komme igang med App Inventor Introduksjon App Inventor PDF

Valdres Vidaregåande Skule. Gjennomgang av diverse installasjoner for elever skoleåret

HR analysen. Ny versjon Brukermal. Administratorer

Forelesning inf Java 1

2. Beskrivelse av mulige prosjektoppgaver

VEILEDER MOTTA FJERNHJELP

Transkript:

1.2. Dynamiske, tjenerbaserte og interaktive nettsteer Kapittel 1 Innlening og motivasjon 1.1 Innlening Mye av agens virksomhet på WWW, alt fra nettbanker til bibliotekkataloger, er ynamisk, interaktiv og atabasestyrt. Alle som leser enne boken har brukt en ynamisk, interaktiv nettsie, et være seg en nettbank, en bibliotekkatalog, en nettbutikk eller lignene. For å kunne forstå hvoran slike ynamiske nettsteer lages, må vi kunne litt om programmering. For å kunne lage slike sier (som er formålet me enne boken), må vi kunne programmere, altså skrive programmer. Å programmere er å skrive programmer som en atamaskin kan tolke og utføre. Slike programmer skrives i et språk vi kaller et programmeringsspråk. Me hjelp av et programmeringsspråk kan vi spesifisere for en atamaskin hvoran en bestemt oppgave skal utføres. En oppgave kan være en sammenligning av to tall, avspilling av en musikk-fil eller styring av et romskip. Et programmeringsspråk er et språk som mennesker kan bruke (skrive og lese) og som en atamaskin kan tolke. Et programmeringsspråk ligner typisk på engelsk, men har en mye mer rigi uttrykksmåte når et gjeler syntaks og orvalg. Det finnes hunrevis av programmeringsspråk. Denne boken omhanler en unermenge av programmeringsspråket PHP. PHP er ett av mange språk som brukes for å lage interaktive nettsier. PHP er relativt enkelt å lære seg, og er meget vanlig å bruke når man lager små og mellomstore ynamiske nettsteer. PHP har også meget goe verktøy for å håntere atabasekommunikasjon. I tillegg kan språket brukes på alle tenkelige atamaskintyper og operativsystemer. Det er essuten gratis og tilgjengelig for alle. 1.2 Dynamiske, tjenerbaserte og interaktive nettsteer Nettsteer som nettbank, netthanelste og bibliotekkatalog er båe ynamiske og interaktive. Dynamiske, fori innholet varierer: to henvenelser 7 til samme nettsie (samme URL) resulterer ikke nøvenigvis i samme utseene eller innhol. De er interaktive, fori brukeren er me på å bestemme ette innholet. Eksemplevis er et brukerens søketermer som bestemmer hvilke poster en bibliotekkatalog skal vise. 1.2.1 Dynamiske nettsier Før vi sier mer om hva en ynamisk nettsie er, er et betimelig å spørre hva en statisk nettsie er. En statisk nettsie vises likt, i båe innhol og utseene 1, hver gang en hentes fram, uansett hvor, når og av hvem en er hentet frem. HTML 2 -kilekoen ligger lagret i en fil, og er fast så lenge en ikke reigeres av noen. En ynamisk nettsie kan foranre innhol og utseene hver gang en hentes fram, avhengig av enree omstenigheter. Slike omstenigheter kan være ti (eksempelvis om et er ag eller kvel), atamaskinen brukeren sitter ve, og ikke minst hvoran brukeren ientifiserer seg for tjeneren som prouserer nettsien. 1.2.2 Hva er en tjener (engelsk:server)? De fleste har hørt oret tjener (engelsk:server) brukt om en stor og kraftig atamaskin. En tjener er egentlig et program, men et er vanlig at et tjenerprogram kjører på en relativt kraftig maskin, en tjenermaskin. Det reier seg om et ataprogram som yter en bestemt tjeneste. Programmet går i en slags evig runans. Hver gang et, i løpet av runansen, kommer til et visst punkt, sjekker et om noen langtveisfra, kalt et klientprogram, har tatt kontakt og bet om en tjeneste. Dette er forsøkt illustrert på figur 1.0. Om ette har skje, stopper tjenerprogrammet opp, avleser forespørselen (hvem har sent og hva et gjeler), utfører et som skal til for å prousere et svar, og sener svaret til klientprogrammet. Deretter fortsetter tjenerprogrammet runansen i påvente av en ny forespørsel. En webtjener er et tjenerprogram som hånterer webforespørsler. Klientene er typisk nettlesere. Velig ofte, og ikke allti, gjeler forespørslene en bestemt nettsie. Nettsien et søkes etter vil gjerne finnes som en iskfil på tjenermaskinens filsystem. Ve ankomst av en slik forespørsel senes et en varsel til tjenerprogrammet. Tjenerprogrammet tolker så forespørselen. Dersom et er en statisk nettsie et spørres etter, finner programmet riktig fil og sener filens innhol til klienten (nettleseren) som sente forespørselen. Denne interaksjonsmoellen kalles klient-tjener-moellen, og er moellen Internett (og webben) er basert på. 1 forutsatt at forskjellige nettlesere tolker en likt 2 I enne boken holer vi oss til XHTML-stanaren. XHTML er en utvikling av HTML, og termene brukes her om hveranre. 8

1.3. Våre første programmer 1.2.4 Interaktive nettsier Me PHP kan vi ta i bruk ata fra brukere ve hjelp av HTML-forms. En HTML-form er en type skjema, me felter, som webbrukere kan fylle me ata, og som PHP-programmer er i stan til å ta i bruk. HTML-forms ser vi på i kapittel 2. 1.3 Våre første programmer I kommene uneravsnitt viser vi noen eksempler på enkle PHP-programmer som implementerer meget enkle nettsier. Eksemplene introuserer PHP s kanskje viktigste verktøy: komanoen print. 1.3.1 Et første, enkelt eksempel Figur 1.0: Et tjenerprogram går i en staig runans, og sjekker om noen klienter har tatt kontakt og bet om en tjeneste.? står for motta forespørsel, # står for utføre tjeneste og! står for sen svar 1.2.3 Tjenerbaserte ynamiske nettsier PHP-baserte ynamiske nettsier er tjenerbaserte. En tjenerbasert, ynamisk nettsie tilrettelegges på webtjeneren. Webtjenerprogrammet vi beskrev ovenfor, og som ligger på en tjenermaskin, bruker en tolker (et ataprogram) som oversetter ynamiske nettsier av typen enne boken omhanler. Tenk eg et nettste som viser klokkeslettet hver gang brukeren klikker på en lenke. Følgene skjer når vi klikker på en lenke til en tjenerbasert ynamisk webklokke, skrevet i PHP: nettleseren sener en forespørsel til tjeneren, som finner riktig PHPprogram (me URL en til PHP-filen) PHP-programmet etterspør et øyeblikkelige klokkeslettet 3 og gjør klokkeslettet om til en forståelig tekststreng (for eksempel 12.02.02 ). Eksempel 1.A: Programkoe for et lite ataprogram 1 2 print ( Dette er et enkelt program ) ; 3 Programmet i eksempel 1.A skriver en tekstlinje (Dette er et enkelt program) til nettlservinuet. Programmet ligger i en fil som vi gir et navn me.php som etternavn. Vi antar at filen heter prog.php, og ligger på webtjenerenhttp:// bibin.hio.no, i webmappenphp/k1. Den fulle referansen til programmet er, altså,http://bibin.hio.no/php/k1/prog.php. Filen prog.php er en nettsie. Når vi henter filen opp i en nettleser blir programmet som er skrevet i en, kjørt. Kjøring av et PHP-program består i at programfilen hentes opp i en nettleser. e Resultatet av kjøringen ser vi på Figur 1.1. Webtjenerprogrammet sener strengen me klokkeslettet over nettet til vår nettleser, for visning. Legg merke til at i ette eksemplet viser vår nettleser tjenerens klokkeslett. Hvis vår tjener er lokalisert i USA, får vi et klokkeslett som ikke passer me vårt. 3 Enhver atamaskin, også en tjenermaskin, har en innebyg klokke som kan brukes av forskjellige programmer som trenger å vite klokkeslettet. 9 http://bibin.hio.no/php/k1/prog.php Dette er et enkelt program Figur 1.1. Kjøring av eksempel 1.A: en linje som skrives til nettleserenvinuet 10

En vanlig feil som gjøres når man skal prøve å kjøre et PHP-program, er å hente et opp som en vanlig iskfil (C:\php\k1\prog.php eller M: public html php k1 prog.php). Dette resulterer i at nettleseren ikke oppfatter teksten som programkoe. resultatet er erfor uefinert (se Figur 1.2). For at et PHP-program skal kjøres som forventet, må en hentes opp fra en webtjener, over http-protokollen, altså:http://bibin.hio.no/ php/k1/prog.php, ikke som en vanlig fil,c:\php\k1\prog.php. e Legg merke til at nettsien i eksempel 1.A på forrige sie ikke er interaktiv. Vi kommer til interaktive nettsier i kapittel 2. Innholsmessig er nettsien heller ikke ynamisk, a ens innhol og utseene står uenret mellom visninger, vel å merke så lenge ingen går inn og reigerer filen. Nettsien kunne like gjerne ha vært skrevet i HTML. 1.3. Våre første programmer maltekst, eller, på engelsk, template text). Den samenflettee sien senes nettleseren. Legg merke til semikolontegnet bak klammen! PHP-kommanoer (slik som print) skal allti avsluttes me semikolon. Eksempel 1.B: PHP-koe innenfor en XHTML-fil 1 <!DOCTYPE html PUBLIC //W3C//DTD XHTML 1.0 Transitional//EN 2 http://www.w3. org/tr/xhtml1/dtd/xhtml1 transitional. t > 3 <html xmlns= http://www.w3. org/1999/xhtml > 4 <hea >... 5 <title>annet program</title> 6 </hea> 7 <boy> 8 9 print ( <p>dette er mitt anre PHP program</p> ) ; 10 11 </boy> 12 </html> Slik ser resultatet ut i sievisning: C:\php\k1\prog.php print("dette er et enkelt program"); Figur 1.2. Kjøring av eksempel 1.A når programmet hentes feilaktig opp som en iskfil og skriver ut programkoen. Dette er mitt anre PHP-program http://bibin.hio.no/ m/annet.php Figur 1.3. Kjøring av eksempel 1.B: resultatvisning av annet eksempel 1.3.2 Generering av XHTML Vi har sett hvoran et program kan skrive en tekst til en nettleser. PHP gir oss mulighet til å veve PHP-instruksjoner sammen me faste HTMLsetninger. Eksempel 1.B på neste sie er en php-fil, me noen faste XHTMLavsnitt og ett programavsnitt. Slike programavsnitt kalles heretter PHPblokker. PHP-blokken starter me og slutter me. I en PHP-blokk gjeler anre regler enn e som gjeler i XHTML-blokker. I PHP-blokker skrives (eler av) koen til PHP-programmer. Språket i slike blokker er PHP. Her må alt som skal skrives til nettleseren skrives me hjelp av print-kommanoer. I likhet me eksepmel 1.A, gjør også eksempel 1.B lite utover genreringen av vanlig HTML-koe. print innenfor en PHP-blokk gjør at HTML-KODEN flettes sammen me en faste HTML koen (sistnevnte pleier man å kalle 11 Kilevisning 1.1 viser kilekoen til eksempel 1.B. Dette er hva vi ser når vi ber vår nettleser om å vise siens kile. Kilevisning 1.1: PHP innenfor en HTML-fil: kilevisning <!DOCTYPE html PUBLIC //W3C//DTD XHTML 1.0 Transitional//EN http://www.w3. org/tr/xhtml1/dtd/xhtml1 transitional. t > <html xmlns= http://www.w3. org/1999/xhtml > <hea>... <ti tle>annet program</ ti tle> </hea> <boy> <p>dette er mitt anre PHP program</p> </boy> </html> 12

Et PHP-program kjører på tjenermaskinen, og lager en HTML-fil, som lastes ne og vises på samme måte som en hvilken som helst annen HTML-fil. Verken i sievisningen eller i kilevisningen kan man se at tekstlinjen er PHP-generert. e 1.4 Kommentarer i programkoen Selv om PHP er engelsklignene, skrives og forstås av mennesker, er et ikke allti lett for utenforståene å forstå hva en programmerer ønsker å oppnå me en koesekvens. En utenforståene kan være en annen programmerer som skal viereutvikle et program, men kan også være en samme som har skrevet programmet, noen uker etter at et er skrevet... kommentarer er tekstbolker som PHP-tolkeren overser, og som ikke blir en el av et kjørene programmet. De kan brukes for å forklare, på vanlig språk hva en koebit gjør. Vi skriver kommentarer i programkoen for at vi (og anre) lettere skal kunne lese våre programmer. Kommentarer i programmet påvirker ikke programmets funksjon. e PHP tillater to typer kommentarer: énlinjet og flerlinjet. En linje i en PHP-blokk som begynner me to skråstreker er en kommentarlinje: // En l i n j e me tekst t i l nettleseren print ( <p> Denne linjen skrives t i l nettleseren </p> ) ; nettleservisningen til eksemplet blir: 1.4. Kommentarer i programkoen / Neste l i n j e printer en l i n j e me tekst t i l nettleseren / print ( <p> Denne linjen skrives t i l nettleseren</p> ) ; Resultatet blir et samme som ovenfor. Eksempel 1.C viser et lite program me noen kommentarer. Kilevisning 1.2 og figur 1.4 på neste sie viser resultatet av å kjøre ette programmet. Resultatet er nøyaktig slik et ville ha vært hvis kommentarene var utelatt. Eksempel 1.C: Koe me innlagte kommentarer 1 <!DOCTYPE... > 2 <html xmlns= http://www.w3. org/1999/xhtml > 3 <hea >... 4 <title>kommentarer</title> 5 </hea> 6 <boy> 7 8 9 / Dette programmet skriver noen l i n j e r t i l 10 en nettleser. Skrevet av Michael / 11 12 // Linjen neenfor skriver overskriften 13 print ( <h3>dette er en overskrift </h3>\n ) ; 14 15 print ( <p>nå følger en l i s t e me innførsler </p>\n ) ; 16 // linjene neenfor skriver innførslene 17 print ( <ul>\n ) ; 18 print ( <li >Første innførsel</li >\n ) ; 19 print ( <li >Anre innførsel</li >\n ) ; 20 print ( <li >Treje innførsel </li >\n ) ; 21 print ( </ul>\n ) ; 22 23 </boy> 24 </html> http://bibin.hio.no/php/k1/enlinjet.php Denne linjen skrives til nettleseren En blokk-kommentar, mellom /* og */ kan strekke seg over flere linjer: 13 Kilevisning 1.2: Koe me innlagte kommentarer: Kilevisning <!DOCTYPE html PUBLIC //W3C//DTD XHTML 1.0 Transitional//EN http://www.w3. org/tr/xhtml1/dtd/xhtml1 transitional. t > <html xmlns= http://www.w3. org/1999/xhtml > <hea>... <ti tle>kommentarer</ ti tle> </hea> 14

<boy> </boy> </html> <h3>dette er en overskrift</h3> <p>nå følger en liste me innførsler</p> <ul> <l i>første innførsel</ l i> <l i>anre innførsel</ l i> <li>treje innførsel </li> </ul> Dette er en overskrift Nå følger en liste me innførsler Første innførsel Anre innførse Treje innførsel http://bibin.hio.no/php/k1/phpkomm.php Figur 1.4. Kjøring av eksempel 1.C: kommentarene vises ikke 1.5 Oppsummering I ette kapitlet har vi introusert språket PHP og infrastrukturen som PHP operererer innenfor. Begrepene som ble introusert er viktige å bli kjent me og forstå. All erfaring tilsier at best mulig forståelse oppnås ve å programmere, og at et er øvelse som gjør mester. Det er for eksempel lurt å kopiere eksemplene tilhørene ette kapitlet (og, når en ti kommer, også e anre kapitlene) fra bokens nettsie, og forsøke å få em til å virke i nettopp itt system. Reiger gjerne og foranre litt på em, for å se hva som skjer. Det er helt ufarlig, faktisk ganske lærerikt, å framprovosere noen feil, for så å rette em opp igjen. Go fornøyelse! 15