PHP og MySQL. PHP og MySQL. Kristian Langborg-Hansen



Relaterede dokumenter
WINDOWS 7 FOR SENIORER

GMAIL LÆR DET SELV GMAIL LÆR DET SELV

ONENOTE 2010 LÆR DET SELV

PHP Quick Teknisk Ordbog

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Jørgen Koch. Access. Opgavehæfte

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

EXCEL 2011 TIL MAC GODT I GANG MED PETER JENSEN GUIDE VISUEL

Serversideprogrammering, CMS og eshop. Dag 1: Introduktion og serverside programmering Niels Østergaard

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

WINDOWS 7 FOR SENIORER

Manual til Wordpress. 1. Log ind på din Wordpress-side. Indhold:

EXCEL 2010 KURSUSHÆFTE TRIN 1 EXCEL 2010 KURSUSHÆFTE TRIN 1

Sådan installeres og teste WordPress på en lokal server

ViKoSys. Virksomheds Kontakt System

Introduktion til SQL

IsenTekst Indhold til Internettet. Manual til Wordpress.

POWERPOINT 2010 LÆR DET SELV POWERPOINT 2010 LÆR DET SELV

Vejledning til opbygning af hjemmesider

EXCEL 2010 KURSUSHÆFTE TRIN 2 EXCEL 2010 KURSUSHÆFTE TRIN 2

INDHOLDSFORTEGNELSE. INDLEDNING... 7 Kristian Langborg-Hansen. KAPITEL ET... 9 I gang med App Inventor. KAPITEL TO...

DRFLive - dynamisk visning af resultater fra DRF Stævnesystem

poedit og oversættelse af sprogfiler

xgalleri Mulige filtyper Installation web-version

Umbraco installationsvejledning

har jeg hentet nedenstående anmeldelse af et godt program til

Procesbeskrivelse - Webprogrammering

Web sider. Introduktion: Har du nogensinde spekuleret over, hvordan det verdesomspændende internet virker og hvordan man snakker med det?

Velkommen til REX onlinehjælp

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

Stop virus og spyware gratis 1. udgave, 1. oplag 2009

Vejledning til Teknisk opsætning

Tillæg til Libris-hæftet: WordPress. Temaredigering og sikkerhed m.m.

Opdatering af ISOWARE til version 6.1.0

ALMINDELIGT ANVENDTE FUNKTIONER

PHP kode til hjemmeside menu.

Afsnitstyper Susanne V. Andersen

NYT. Få en ny Formular i PakIT Helt gratis

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Vejledning i redigering af apotekets hjemmeside

Manual til Wordpress. 1. Log ind på din Wordpress-side. Indhold: Sådan opdaterer du din hjemmeside i Wordpress.

SIDEN PÅ WORDPRESS.COM

Sådan indlægges nyheder på DSqF s hjemmeside trin for trin

JES NYHUS EXCEL 2010 EXCEL 2010 LÆR DET SELV LÆR DET SELV. Nyt i Excel 2010 Båndet, knappen Filer og værktøjslinjerne Navigering og tilpasning

Sådan redigerer du en hjemmeside i Umbraco

Kom godt i gang med ImageDB programmet fra PetriSoft

Kort om CoinDB (Mønt- og seddelsamling):

IT projekt uge 4 9. Marie Vinter, Roskilde Tekniske Gymnasium, klasse 2.6 IT, bw, uge

Indhold. Produkter oprettelse og vedligehold v Side 2 af 20

WordPress 1. udgave, 1. oplag 2010

En open source løsning til bibliotekernes publikumspc ere

PID2000 Archive Service

Loginsystem (med MySQL)

Opgradere fra Windows Vista til Windows 7 (brugerdefineret installation)

Kenn Römer-Bruhn. WordPress. - gør dig synlig på nettet

WORD 2010 KURSUSHÆFTE WORD 2010 KURSUSHÆFTE

Kort introduktion til Google.

Manual til WordPress CMS

Oprette og distribuere lyd- og videofiler

Infokiosk i SkoleIntra

Kapitel 4 Løkker i C#

Jørgen Koch. och. Access. Normalisering m.v.

En lille vejledning til lærere og elever i at bruge matematikprogrammet WordMat (begynderniveau)

Lav din egen forside i webtrees

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Elevvejledning til SkoleKomNet - Min egen hjemmeside

INDHOLDSFORTEGNELSE. Indledning... Lars Ljungqvist. KAPITEL ET... Velkommen til OneNote KAPITEL TO Din første notesbog: Madopskrifter

Lav dine egne hjemmesider/websider

18/ Version 2.0 Side 1 af 36

JavaScript. nedarvning.

Manual til hjemmeside i Typo3

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

Flash Logic Free CMS. Manual og brugervejledning

Løsningen er baseret på et såkaldt CMS et Content Management System som også kan anvendes som intranet i din virksomhed eller din institution.

Få det bedste fra Windows 10

Administration af subsites BRUGERVEJLEDNING FOR ADMINISTRATOREN

Novell Vibe Quick Start til mobilenheder

Udlæsning af opslagsfil til scanneren 1. Opret mappen pdt på C-drevet (c:\pdt).

Guide til Umbraco CMS

Annemette Søgaard Hansen/

5.0 Velkommen til manualen for kanalen HTML-grab Introduktion til kanalen HTML-grab kanalside Hvad er et spot?

IT SUMMER CAMP Dato for arr. og. dato for seneste tilmelding. bliver offentliggjort i maj. Ubuntu-Linux, Web-Server, Anvendte Web-Teknologier

Maple. Skærmbilledet. Vi starter med at se lidt nærmere på opstartsbilledet i Maple. Værktøjslinje til indtastningsområdet. Menulinje.

Sådan opdaterer og vedligeholder du din hjemmeside i Wordpress.

Vejledning i oprettelse og brug af weblog til spejderformål. Indhold: Weblog til spejderbrug

PHP Crash course. Databaser

APPENDIX A INTRODUKTION TIL DERIVE

Ruko SmartAir. Updater installation

Seniorklubben TDC Jylland Cloud Computing Kursus 2011_5: Rev

Karens vejledning til WordPress, september

ONSCREENKEYS 5. Windows XP / Windows Vista / Windows 7 / Windows 8

Installation af webtrees på et webhotel ved webhosting.dk

Upload af billeder/filer for nybegyndere Del. 2

Basisbrugergrænsefladen i GroupWise WebAccess

Udlæsning af stregkodefil til scanneren 1. Opret mappen pdt på C-drevet (c:\pdt).

Installation af WeroShop 2.4 S

Indholdsfortegnelse Opret engelsk version af hjemmesiden... 2

Redaktørvejledning for Skriv en artikel

Transkript:

PHP og MySQL Kristian Langborg-Hansen PHP og MySQL > Dynamiske websider med PHP og MySQL > Letforståelig introduktion til begge sprog > Hent programeksempler fra nettet

PHP og MySQL 1. udgave, 1. oplag 2010 Copyright 2010 Forlaget Libris Forfatter: Kristian Langborg-Hansen Forlagsredaktion: Peter Svendsen Omslag: Fru Tang Design DTP: Jan Nyborg Tarbensen Korrektur: Jens Lyng Tryk: P. J. Schmidt A/S ISBN-13: 978-87-7843-892-8 www.libris.dk På vores hjemmeside finder du alle oplysninger om Forlaget Libris udgivelser. Om Libris Libris er sat i verden for at gøre vanskeligt stof tilgængeligt og anvendeligt for både professionelle og almindelige brugere. Siden 1994 har vi gjort det inden for Computer og it Digitalfoto Job, karriere og erhverv Sundhed og sygdom Alene i Danmark er hæfterne solgt i over otte millioner eksemplarer, og vores titler udgives i 14 europæiske lande. Besøg Libris.dk Besøg os på libris.dk, hvor du finder alle vores udgivelser. Her kan du også give os kommentarer og tilmelde dig vores gratis nyhedsservice. På www.libris.dk/bilag kan du hente eventuelle øvelsesfiler, smagsprøver og opdateringer. Fås overalt Vores udgivelser kan købes i alle boghandler. Ithæfterne fås tillige i større computerforretninger, og flere større kiosker fører et udvalg af vores hæfter. Er der et hæfte, du ikke kan finde, så kan boghandleren normalt skaffe det hjem på et par dage. Hæfterne kan også købes på Libris.dk, men vær opmærksom på, at der tillægges et ekspeditionsgebyr. Carl Jacobsens Vej 16, opgang 16 2500 Valby Tlf: 39 47 00 99 Fax: 39 47 00 88 E-mail: libris@libris.dk www.libris.dk Med søgefunktionen kan du nemt finde de titler, du skal bruge. Søg på titel, forfatter, ISBN eller fritekst. I genvejsmenuen kan du se vores nyheder inden for bl.a. it, foto og job/erhverv. Du finder også en liste over vores bestsellere. Titler på vej viser, hvilke hæfter og bøger vi udgiver inden for den næste måned. Tilmeld dig vores nyhedsservice, og bliv informeret om nyheder, tilbud og portofrie dage.

Indhold 1. Introduktion...5 Hvad er PHP?...5 Hvad er MySQL?...5 2. Installation af PHP...7 Webserver...7 PHP...7 Konfiguration af Apache og PHP...8 Virker det?...8 3. Grundlæggende PHP...10 Opbygning af PHP-filer...10 Tekst i PHP...10 Kommentarer...11 Inkludering af andre scripts...12 4. Variabler...14 Sådan skrives variabler...14 Tal...14 Beregninger...15 Tekster...15 Visning af variabler...16 Arrays...17 Arrays med symbolske navne...18 Arrays i flere dimensioner...18 5. Betingelser...19 Hvis-betingelser...19 Hvis-ellers-betingelser...20 Betingelser og blokke...20 Både-og og enten-eller...20 Kontrol af flere betingelser samtidigt...21 6. Struktur...22 Løkker med while...22 Løkker med do-while...23 Løkker med for...23 Spring med goto...23 7. Matematik...25 Introduktion til funktioner...25 Tilfældige tal...25 Afrundinger...25 Længden af arrays...26 Flere matematiske funktioner...26 8. Håndtering af tekst...27 Søg...27 Store og små bogstaver...27 Erstatning af tekst...28 Tal vist som tekst...28 9. Datoer og klokkeslæt...29 Dags dato...29 Visning af en dato...29 Dato i sekunder...32 10. Dine egne funktioner...33 Almindelige funktioner...33 Anonyme funktioner...34 11. Formularer...35 Post og get...35 Adgang til data...36 Forskellige felttyper...36 Upload af filer...37 12. Sessioner og cookies...39 Sessioner...39 Cookies...40 13. Håndtering af filer...42 Åbning af fil...42 Læsning af filer...42 Skrivning af fil...43 Tilføjelse til fil...43 Mapper og biblioteker...44 14. Databaser...45 Installation af MySQL...45 Installation af PhpMyAdmin...46 Databaseopbygning...46 Opret database...49 Tabeller...50 Indsæt data...52 Forespørgsler...53 Sortering...55 Beregninger og grupperinger...56 Begrænsning af returnerede poster...57 Sammenkædede forespørgsler...57 Opdatering af data...58 Brugere...59 3 FORLAGET LIBRIS

15. Databaseadgang fra PHP...63 Forbindelse til MySQL...63 Indsættelse af data...64 Hentning af data...64 SQL Injection...65 16. Nyttige funktioner...66 E-mail...66 Afbryd scriptet...66 Matematiske funktioner...66 Datofunktioner...67 Headers...67 17. Objektorienteret PHP...68 Objektorienteret PHP...68 Anvendelse af klasser...69 Indkapsling af data...70 Nedarvning...70 18. Det afsluttende eksempel en blog.71 Bloggens opbygning...71 Databasen...71 Log ind...72 Kontrol af adgangskode...73 Kontrol af adgang...73 Menuen...74 Opret indlæg...74 Redigering af indlæg...75 Sletning af indlæg...77 Bloggens forside...78 Vis et indlæg...78 Tip en ven...79 Forbedringer til bloggen...80 Stikordsregister...81 FORLAGET LIBRIS 4

1. Introduktion I dette hæfte vil du stifte bekendtskab med både PHP og MySQL. Måske ved du allerede, hvad de er, og hvad du kan bruge dem til, og så kan du glæde dig til at finde ud af, hvordan du får tingene til at virke for dig. Du kan roligt se frem til nogle spændende sider forude, for når du først er velbevandret i PHP og MySQL, er der næsten ingen begrænsninger på de opgaver, du kan udføre. I resten af dette kapitel vil vi give dig en kort introduktion til, hvad PHP og MySQL er. I de næste mange kapitler gennemgår vi de forskellige dele af PHP, så vi i hvert kapitel stille og roligt bygger oven på det, vi lærte i det forrige. Når vi har dækket det meste af PHP-stoffet, flytter vi et øjeblik fokus over på MySQL og ser, hvordan programmet installeres og benyttes også fra PHP. Hæftet afsluttes med et gennemgående eksempel, hvor vi udvikler vores eget blogsystem ved hjælp af de færdigheder, der er blevet opbygget gennem de forrige kapitler. Hæftets eksempler Gennem hæftet vil du finde mange eksempler store som små. Alle eksemplerne kan hentes samlet fra dette hæftes websted, www.php-online.dk. Du kan også hente eksemplerne fra www.libris.dk/bilag. Hvad er PHP? PHP kan opfattes som en udvidelse til det HTML-sprog, man bruger til at lave websider i. I HTML kan man fortælle, hvordan siderne skal se ud. Man kan bestemme skrifttyper, farver, placeringer og så videre HTML er til præsentation, men ikke meget andet. Forestil dig, at du vil lave en gæstebog, hvor de, der besøger din side, kan skrive en hilsen til dig. Det kan man ikke gøre alene i HTML, for det sprog indeholder ingen metode til at gemme data i en fil eller en database. Det er her PHP kommer ind i billedet. PHP forholder sig ikke til, hvordan teksten præsenteres på hjemmesiden. I stedet giver PHP mulighed for at arbejde med data, regne på dem, gemme dem i databaser og meget mere. PHP giver hjemmesiderne den dynamik, som de ikke kan få blot med HTML. PHP er open source, så det er gratis at bruge, og du har endda mulighed for at se, hvordan PHP selv er skrevet, hvis du skulle have lyst. Navnet PHP PHP blev oprindeligt skrevet i 1994 af den dansk/grønlandske programmør Rasmus Lerdorf, som ville lave avanceret funktionalitet på sin personlige hjemmeside på en let måde. Da systemet blev udviklet til Rasmus personlige hjemmeside, kaldte han det for Personal Home Page forkortet PHP. Siden da er der sket en masse, og PHP står i dag for PHP: Hypertext Preprocessor. Hvad er MySQL? MySQL er en relationel database og hvad er det så? En database er et sted, man kan samle sine data. At en database er relationel, vil sige, at der er relationer sammenhænge mellem de data, der ligger i den. Du kan for eksempel forestille dig, at din database indeholder en adressebog. Her vil der være en sammenhæng mellem folks postnummer, og hvilken by de bor i. Det er denne form for 5 FORLAGET LIBRIS

1. Introduktion sammenhænge relationer en relationel database er skræddersyet til at håndtere. Der findes mange forskellige relationelle databaser, men vi har valgt at fokusere på My- SQL. MySQL er ligesom PHP open source og gratis at benytte, og netop den database anvendes ofte sammen med PHP. Når man skal bede MySQL gemme data eller hente dem frem igen, benytter man sprogene kaldet Data Definition Language (DDL) og Structured Query Language forkortet SQL. Det kommer vi til at se mere på senere i dette hæfte. Udtale MySQL kan udtales på flere måder. Den officielle er den engelske udtale af ordet My og bogstaverne S, Q og L, altså noget i retning af maj es kju æl. Ofte hører man dog også den udtale, hvor bogstaverne SQL trækkes sammen, så de udtales som det engelske ord sequel, så udtalen bliver maj si-kvæl. En egentlig officiel dansk udtale findes ikke, men de fleste udtaler My på engelsk og SQL på dansk, altså maj es ku æl. FORLAGET LIBRIS 6

2. Installation af PHP I dette hæfte ser vi udelukkende på PHP anvendt som sprog til at arbejde med websider. Derfor skal PHP installeres på en webserver. Hvis du har din egen webserver, er det op til dig selv at installere PHP-softwaren. En anden løsning er at leje sig ind på en webserver, der i forvejen har PHP installeret. Disse løsninger markedsføres ofte som LAMP-løsninger, hvor LAMP står for operativsystemet Linux, webserveren Apache, databasen MySQL og programmeringssproget PHP. Uanset hvilken løsning man vælger, kan det være en god ide at have PHP installeret på sin egen computer for at kunne lave en hurtig test af det, man laver, uden at påvirke de sider, der allerede er lagt på internettet. Genvej til installation Hvis du vil hurtigere i mål med installation af webserver og PHP, kan du prøve at benytte en af de samlede pakker, der kan hentes frit på internettet. De indeholder både Apache og PHP. Der findes flere af disse pakker de mest populære er Xampp, EasyPHP, AppServ og Wamp- Server. der sendes til hvilke programmer. Port 80 er standardporten for en webserver. Da vi kun skal bruge serveren til testformål, vil det som regel være en god ide at vælge, at det skal startes manuelt og køre på port 8080. PHP er skrevet til at blive kørt på Linuxeller Unix-maskiner, men findes også i en Windows-udgave, og da de fleste bruger Windows på deres personlige computer, viser vi i det følgende, hvordan PHP installeres på Windows. Webserver For at PHP kan afvikles, skal man først have en webserver. Her har vi valgt Apache, som er en gratis open source webserver, som findes til både Windows og Linux. Begge udgaver kan downloades fra http://httpd.apache. org/download.cgi. Installationen af Apache udføres af det medfølgende installationsprogram. Det væsentligste spørgsmål under installationen er, om Apache skal køre som en service på port 80 eller som et manuelt startet program på port 8080. Portnummeret bruges, når der kører flere serverprogrammer på den samme computer. Ved at tildele hvert program deres eget portnummer kan man styre, hvilke data Figur 2.1 Valg af installationsform til Apache. PHP Windows-udgaven af PHP kan hentes på adressen http://windows.php.net/download/. Ligesom Apache kan PHP også hentes med et automatisk installationsprogram. Læg mærke til, at hvis du vil køre PHP i Apache som vi gør i eksemplet her skal du hente en VC6- version. Vil du i stedet køre PHP i Microsoft 7 FORLAGET LIBRIS

2. Installation af PHP Internet Information Server (IIS), skal du i stedet hente VC9-versionen. Installation på Linux Hvis du vil installere PHP til test på en Linux-computer, er det letteste blot at benytte operativsystemets package manager til at installere Apache-webserveren og PHP-modulet. Så bliver de nødvendige pakker automatisk hentet til din computer. Alternativt kan du downloade Linux-udgaver af både Apache og PHP og installere dem manuelt. Konfiguration af Apache og PHP Når både Apache og PHP er installeret, skal Apache konfigureres, så webserveren ved, hvor den kan finde PHP henne. Det gøres ved at redigere filen httpd.conf, som ligger i conf-mappen i Apache-installationen (sandsynligvis C:\Programmer\Apache Software Foundation\ Apache2.2\conf). I filen skal du indsætte følgende linjer du kan bare indsætte dem til sidst. ScriptAlias /php/ "c:/programmer/php/" AddType application/x-httpd-php.php Action application/x-httpd-php "/php/php-cgi.exe" <Directory "C:/programmer/php"> AllowOverride None Options None Order allow,deny Allow from all </Directory> Husk, at du kan hente linjerne på hæftets webside, www.php-online.dk. Hvis du har installeret PHP et andet sted end c:\programmer\php, skal du naturligvis ændre stien i den første og fjerde linje. Virker det? Nu skulle du være klar til at starte Apacheserveren fra Start-menuen i Windows. Virker det så? Start en browser og gå ind på adressen http:// localhost:8080 hvis det virker, skulle du gerne se teksten It works!. Hvis du får den tekst frem, har du i hvert fald installeret Apachewebserveren rigtigt. Det kræver lidt mere at teste, om PHP også er installeret rigtigt. Her skal du først oprette en fil kald den for eksempel test.php og læg den i htdocs-mappen i Apache-installationen. I filen skal du skrive nedenstående linjer du behøver ikke bekymre dig om, hvad de betyder; det kigger vi på senere. phpinfo(); Eksempel 2.1 Test af PHP-installationen. Hvis du nu beder din browser åbne adressen http://localhost:8080/test.php, skulle du gerne få en fin oversigt over din PHP-opsætning i stil med billedet i figur 2.2. FORLAGET LIBRIS 8

2. Installation af PHP Figur 2.2 Resultatet af en korrekt PHP-installation. 9 FORLAGET LIBRIS

3. Grundlæggende PHP Når du er kommet hertil, har du sikkert enten en webserver med PHP installeret eller PHP og Apache installeret på din egen computer eller måske begge dele. Uanset hvad, er du med garanti klar til at komme i gang med at skrive noget PHP. Lad os starte med at se på, hvordan en PHPfil er opbygget. Opbygning af PHP-filer Grundlæggende er PHP-filer blot tekstfiler. Det betyder, at du blot behøver et almindeligt tekstprogram for at kunne skrive PHP-filer. I princippet kunne du nøjes med Notesblok i Windows, men det kan godt betale sig at have et program, der kan hjælpe med at skrive PHP-koden rigtigt, farvelægge nøgleordene og meget mere. Du kan finde et stort udvalg af PHP-programmer på internettet både gratis og kommercielle. Som nævnt i starten af hæftet, er PHP-filer en blanding af HTML og PHP-kode. Derfor er det nødvendigt at kunne angive, hvad der er HTML, og hvad der er PHP. De små PHPfiler kaldes ofte scripts, programmer eller programstumper. Inden PHP-koden i en HTML-fil skal man skrive. Efter den sidste linje i PHP-koden skal man afslutte blokken ved at skrive. Nedenstående eksempel viser, hvordan HTML og PHP kan kombineres. <b>her er noget HTML.</b><br/> Her er noget PHP <p> og noget mere HTML.</p> Forkortet og forlænget PHP PHP-elementerne kan faktisk skrives endnu kortere. I den forkortede udgave er det tilstrækkeligt at indlede PHP-blokken med <? i stedet for. Forkortet PHP skal slås til først. Det gøres ved at sætte short_open_tag til true i php.ini. I dette hæfte bruger vi den uforkortede udgave, så du vil kunne bruge eksemplerne, uanset hvordan du har konfigureret din server. PHP-elementet findes også i en noget længere udgave. Den kan du med fordel bruge, hvis du skal have din PHP-fil håndteret af en XML-fortolker. Den forlængede udgave ser således ud: <script language="php"> </script> Tekst i PHP Lad os gå videre til et simpelt eksempel: vi vil skrive noget tekst ved hjælp af PHP. Tekst skrives ved hjælp af kommandoen echo. Den skal efterfølges af den tekst, der skal skrives. Det er vist i nedenstående eksempel. echo "Her er noget tekst"; Eksempel 3.1 Udskrivning af tekst. I eksemplet er der to ting, der er værd at lægge mærke til. Den første er, at den tekst, der skal vises, er omsluttet af anførselstegn. De fortæller PHP, at teksten bare skal skrives, som den er. Det kommer vi mere ind på, når vi ser på forskellige variabler i kapitel 4. FORLAGET LIBRIS 10

3. Grundlæggende PHP Hvor skal filerne ligge? For at eksemplerne skal virke, skal PHPfilerne ligge, så webserveren kan finde dem. Hvis du bruger Apache, kan du enten vælge at lægge filerne direkte i htdocsmappen under Apache-installationen eller oprette en ny mappe til dem. Af hensyn til overskueligheden er det sidste som regel at foretrække. Vil du lægge dine eksempler i mappen c:\ eksempler, kan du indsætte følgende linjer i httpd.conf-filen: Alias /eksempler "c:/eksempler" <Directory "C:/eksempler"> AllowOverride None Options None Order allow,deny Allow from all </Directory> Filerne i mappen c:\eksempler vil fremover kunne findes på webadressen http://localhost:8080/eksempler. Den anden bemærkelsesværdige ting i eksemplet er, at echo-linjen afsluttes med et semikolon. I PHP benyttes semikolon til at adskille de forskellige linjer husk derfor altid at afslutte dine PHP-linjer med et semikolon. Når du gemmer eksemplet, skal du huske at give filen typen php det vil sige at lade filnavnet ende med.php. Det er egentlig ikke strengt nødvendigt, men hvis du vil vise eksemplerne i den standardopsætning af Apache, som vi lavede tidligere, er det et krav. Resultatet af eksemplet kan ses i en webbrowser. I adresselinjen skriver du som tidligere http://localhost:8080. Det skal du efterfølge af navnet på den mappe, du har lagt filen i, og navnet på filen eksempelvis http://localhost:8080/eksempler/eksempel3-1.php. Den tekst, der skrives med PHP, bliver fortolket som HTML. Du kan med andre ord indsætte HTML-elementer i teksten og få den formaterede tekst vist i browseren. Dette vises i nedenstående eksempel 3.2. echo "Her er noget <b>fed</b> tekst"; Eksempel 3.2 Udskrivning af tekst med HTML. Resultatet af eksemplet er vist i figur 3.1. Figur 3.1 Tekst formateret med HTML. Eksemplerne i dette hæfte Alle eksemplerne i dette hæfte kan downloades direkte fra hæftets hjemmeside på adressen www.php-online.dk. Kommentarer Når man skriver programmer lige fra store applikationer til mindre PHP-stumper kan det være en god ide at indsætte nogle kommentarer. Det er en smule beskrivende tekst, som forklarer, hvad der sker. Måske lyder det unødvendigt. Det er jo dig selv, der har skrevet det, og måske også dig selv, der senere skal rette eller opdatere PHP-scriptet, men tro mig: det kan være svært at huske, hvad et kompliceret PHPscript gør, hvis der går en måneds tid, før man ser scriptet igen. Forestil dig, at du har et script, der omregner fra sekunder til dage. Det sker ved at tage antallet af sekunder og dividere med antallet af sekunder per døgn. Der er 86.400 sekunder på et døgn, så formlen er altså antallet af sekunder divideret med 86.400. 11 FORLAGET LIBRIS

3. Grundlæggende PHP Det virker muligvis indlysende nok på det tidspunkt, du skriver formlen, men hvis du senere kommer tilbage til scriptet, og ser, at du dividerer med det magiske tal 86.400, så ville det nok være dejligt med en kommentar, der minder dig om, at det er antallet af sekunder. I PHP kan kommentarer skrives på to forskellige måder. Den første anvendes, når man blot vil lave en kommentar på én linje. Disse kommentarer startes med to skråstreger og betyder, at PHP skal se bort fra resten af linjen. Nedenstående eksempel viser, hvordan kommentarer kan skrives. // Næste linje udskriver et tal echo "Tallet er 42<br>"; echo "Tallet kunne også være 16<br>"; // Denne linje udskriver også et tal </ Eksempel 3.3 Kommentarer på én linje. I nogle tilfælde vil man gerne skrive kommentarer, der fylder flere linjer. Disse kommentarer skal indledes med /* og afsluttes med */. Alt der står mellem disse opfattes som kommentarer uanset om det er tekst eller kode. Det nedenstående eksempel viser en lang kommentar, som også indeholder lidt PHP-kode men PHP-koden bliver ikke fortolket, for vi har jo markeret den som en kommentar. /* I PHP kan man bruge kommandoen echo til at udskrive tekst. For eksempel: echo "Noget tekst"; */ Eksempel 3.4 Kommentar på flere linjer. Inkludering af andre scripts I PHP kan man inkludere scripts i andre scripts. Den teknik kan man med fordel anvende, hvis man har PHP- eller HTML-kode, som skal bruges på flere sider. Det kan eksempelvis være en menu, sidehoved og -fod eller bare en samling smart PHP, man gerne vil genbruge. Inkludering af en anden fil sker med funktionen include. Efter include skal man blot skrive navnet på den fil, der skal inkluderes. Filen vil blive indsat på det sted i filen, hvor include-funktionen står. Nedenstående eksempel viser, hvordan vi kan inkludere teksten fra eksempel 3.2, og få den skrevet i kursiv. echo "Her er teksten fra eksempel 3.2:<br>"; echo "<i>"; include "eksempel3-2.php"; echo "</i>"; Eksempel 3.5 Inkludering af fil. Eksemplet laver den side, der er vist i figur 3.2. Figur 3.2 Resultatet af inkludering af fil. I ovenstående eksempel inkluderede vi en fil, som lå på samme server endda i samme mappe som den fil, vi indsatte den i. Sådan behøver det imidlertid ikke at være. Man kan inkludere filer fra andre mapper, diske og endda andre servere. Ønsker man at inkludere et PHP-script, som ligger på en anden server, behøver man blot at skrive den komplette webadresse til scriptet. FORLAGET LIBRIS 12

3. Grundlæggende PHP Inkludering med begrænsninger Hvis du benytter include-funktionen til at inkludere filer, som måske inkluderer andre filer, som igen kan inkludere andre filer, er der en vis risiko for, at du kommer til at inkludere den samme fil flere gange. Det kan give lidt rod i, hvordan din PHP bliver afviklet, og det optager også flere ressourcer end nødvendigt. I de tilfælde kan du med fordel anvende funktionen include_once i stedet for include. Den funktion sikrer nemlig, at hver enkelt fil kun inkluderes én gang. 13 FORLAGET LIBRIS

4. Variabler I dette kapitel skal vi se på variabler. Variabler bruges til at holde styr på ting, der kan ændre sig. Deraf navnet; de indeholder variable værdier. Når du laver websider med PHP, vil du ofte få brug for en variabel, for du kan umuligt vide alt på det tidspunkt, du skriver PHP-siderne. Forestil dig, at du laver en webbutik. Når kunden har bestilt sine varer, skal du lave en PHP-side, som viser kundens faktura. Den skal indeholde kundens navn, adresse og naturligvis en oversigt over de varer, kunden har købt. Når du laver PHP-siden, kan du på ingen måde vide, hvad kunden hedder, eller hvilke varer han vil købe. Det er her variablerne kommer ind i billedet. De ting, brugerne af webstedet indtaster, kan gemmes i variabler. Inden vi kommer så vidt og det gør vi faktisk først i kapitel 11 ser vi på nogle af de andre ting, variabler kan bruges til. Sådan skrives variabler Variabler skal have et navn. Det gør det let for os at huske, hvad variablen indeholder. Til kundens navn kan man med fordel bruge navnet kundenavn. I PHP er det et krav, at variabler indledes med et dollartegn ($). På den måde kan PHP nemt se, hvad der er variabler. Hvis vi vil opbevare tallet 42 i en variabel med navnet $svar, skrives det således. $svar = 42; PHP-udtryk af denne type kaldes for tildelinger, fordi det tildeler en værdi til en variabel. Læg mærke til, at rækkefølgen er den, at navnet på variablen står til venstre, og den værdi, variablen skal tildeles, står til højre. Navngivning af variabler Som nævnt er det et krav, at variablers navne skal starte med et dollartegn, men der findes faktisk også andre regler. Navnene må kun indeholder bogstaver (A-Z) og tal (0-9) samt understregning (_). Et variabelnavn kan altså ikke indeholde et mellemrum. Hvis et variabelnavn skal bestå af flere ord, kan man enten erstatte mellemrummet med en understregning (så variablen kan hedde kundens_postnummer_og_by), eller vælge at starte hvert nyt ord med et stort bogstav (så navnet i stedet ville være kundenspostnummerogby). Om man foretrækker den ene eller den anden form er i høj grad et spørgsmål om smag og behag; her i hæftet anvender vi den første metode. Tal Som ovenstående, simple PHP-linje viste, er det let at tildele et tal til en variabel. Hvis du vil give en variabel en negativ værdi, skriver du blot et minus foran tallet: $tal = -42; PHP kan også håndtere decimaltal. Her skal du blot være opmærksom på, at PHP anvender punktum som decimaladskiller. Et komma seksogtyve skal således skrives 1.26: $decimal = 1.26; Andre talsystemer PHP kan også håndtere andre talsystemer end det 10-tals-system, der normalt anvendes. Hvis du ønsker at skrive et tal i hexadecimal notation, skal du skrive 0x foran tallet. Tallet 22 kan altså også skrives således: $hex = 0x16; FORLAGET LIBRIS 14

4. Variabler Beregninger Når man har samlet nogle tal i forskellige variabler, får man typisk lyst til eller behov for at lave nogle beregninger med dem. PHP understøtter de fire regneformer: plus, minus, gange og dividere. Nedenstående eksempel 4.1 viser hvordan: echo 1 + 2; // Giver 3 echo 1-2; // Giver -1 echo 1 * 2; // Giver 2 echo 1 / 2; // Giver 0,5 Eksempel 4.1 De fire regneformer. Hvert tal kan erstattes af en variabel. Har du eksempelvis et rektangels højde og bredde i variablerne hojde og bredde, kan du beregne og vise rektanglets areal således som vist i eksempel 4.2. $hojde = 4; $bredde = 3.5; $areal = $hojde * $bredde; echo $areal; Eksempel 4.2 Beregning af areal. Som du kan se af eksemplet, kan echo også bruges til at vise en variabels værdi. Ud over de almindelige regneformer kan PHP også beregne divisionsrest. Hvis du dividerer 5 med 4, vil resultatet som et decimaltal blive 1,25, men hvis du laver en heltalsdivision, vil resultatet blive 1 og 1 til rest. Det er denne rest som faktisk kan anvendes oftere, end man lige tror der beregnes med divisionsrest. Operatoren er i dette tilfælde et procenttegn. Det kan se således ud: $rest = 5 % 4; PHP har også en række operatorer, som fungerer som en slags genveje til hyppige beregninger. Forestil dig for eksempel, at du vil lægge moms til en pris. Det kan gøres ved at sætte prisen lig med prisen ganget med 1,25 (da momsen er 25 procent). I PHP kan det skrives således: $pris = $pris * 1.25; Du kan også vælge at kombinere tildelingen og multiplikationen i ét udtryk: $pris *= 1.25; På tilsvarende vis findes der operatorer, som kombinerer tildeling med plus, minus og dividere, nemlig +=, -= og /=. En anden hyppig beregning er at lægge én til eller trække én fra. Det bruger man eksempelvis, hvis man vil gennemløbe en ordre og tælle op, hvor mange linjer der er i den. Operatorerne tæl op og tæl ned skrives henholdsvis ++ og --. Vil du tælle variablen antal_varer op, kan det gøres således: $antal_varer++; Tekster Da vi vil bruge PHP til at arbejde med websider, er det vigtigt også at kunne arbejde med tekster eller strenge, som tekster også kaldes. Som vi så i de første eksempler i dette hæfte, skal alle tekster skrives i anførselstegn. Du kan selv vælge, om du vil bruge anførselstegn eller apostroffer. Begge nedenstående linjer er således gyldig PHP om end der er en betydningsmæssig forskel, som vi kommer ind på senere. $tekst1 = "Den første tekst"; $tekst2 = 'Den anden tekst'; Hvor tallene havde en lang række forskellige operatorer og regneformer, findes der kun én operator til tekster. Det er operatoren punktum, som sætter to strenge sammen. Nedenstående eksempel 4.3 viser, hvordan teksterne i variablerne $hilsen og $navn kan sættes sammen og vises. 15 FORLAGET LIBRIS

4. Variabler $navn = "Daniel"; $hilsen = "Hej "; $velkomst = $hilsen. $navn; echo $velkomst; Eksempel 4.3 Sammenkædning af tekster. Som ved regneoperatorerne kan også punktum-operatoren forkortes. Det ser således ud som i eksempel 4.4. $navn = "Daniel"; $hilsen = "Hej "; $hilsen.= $navn; echo $hilsen; Eksempel 4.4 Forkortet version af punktumoperator. Visning af variabler Indtil videre har vi ikke gjort noget særligt ud af at vise variablerne. Vi har blot benyttet echo efterfulgt af variablens navn men PHP kan meget mere end det. Hvis vi skriver et variabelnavn i en PHPstreng, vil variablens værdi automatisk blive indsat i teksten men kun, hvis teksten er omkranset af anførselstegn. Hvis du bruger apostroffer rundt om tekststrengen, vil variablen ikke blive erstattet. Forvirret? Lad os se på PHP-koden i eksempel 4.5. $navn = "Daniel"; echo "Velkommen $navn <br/>"; echo 'Velkommen $navn <br/>'; Eksempel 4.5 Visning af variabler. bruger anførselstegn omkring teksten, mens den sidste linje anvender apostroffer. I den linje, der benytter anførselstegn, bliver $navn erstattet med variablens værdi, mens den anden linje blot udskriver $navn. Scriptet i eksempel 4.5 viser altså disse to linjer: Velkommen Daniel Velkommen $navn Når PHP automatisk leder efter en variabel, når den møder et dollartegn i teksten, hvad gør man så, hvis man rent faktisk vil vise et dollartegn? Man kan selvfølgelig bruge apostroffer omkring den tekst, men man kan også vælge at sætte en omvendt skråstreg (backslash) foran dollartegnet så ved PHP nemlig, at den ikke skal lede efter en variabel, men blot udskrive teksten som den er. Det kan for eksempel se således ud: echo "Prisen er \$ 10"; Man kan også kombinere dollartegn, som skal vises, med dollartegn, der angiver variabler: echo "Prisen er \$ $pris"; Dollartegnet er ikke det eneste tegn, det er nødvendigt at håndtere med backslash. Tabel 4.1 viser specialtegnene og deres betydning. Specialtegn Betydning \$ Dollartegn \n Linjeskift \r Vognretur \\ Bagvendt skråstreg \" Anførselstegn \t Tabulator Tabel 4.1 Specialtegn. Som det ses, er den eneste forskel på de to sidste linjer i scriptet, at den første linje FORLAGET LIBRIS 16

4. Variabler Arrays Nu har vi set på, hvordan vi kan håndtere tal og tekster i PHP hvad kan vi så ønske os mere? Forestil dig, at vi skal lave en indkøbskurv til en netbutik. Hver vare har et navn det er en tekst og en pris, som er et tal. Det kan vi sagtens klare. Medmindre vores netbutik har et meget lille udvalg, så skal vi gerne kunne have mere end én vare i indkøbskurven. Derfor har vi også behov for at kunne bruge lister. Når man taler programmering, kalder man ofte lister for arrays. Et array skal opfattes som en liste af PHP-variabler. De opfører sig på samme måde som andre variabler; blot skal man være opmærksom på, at syntaksen er lidt speciel. Hvis vi fortsætter med vores indkøbskurv, så kan vi lægge lige så mange varer, som vi vil, i et array. Det er vist i nedenstående eksempel 4.6, hvor varer lægges i array et og indholdet af kurven udskrives. $kurv[0] = "Ananas"; $kurv[1] = "Agurk"; $kurv[2] = "Tomat"; echo "Du har disse varer i indkøbskurven: $kurv[0], $kurv[1], $kurv[2]"; Eksempel 4.6 Arrays. Der er flere ting at lægge mærke til i eksemplet. Som nævnt ligner variablerne i et array helt almindelige variabler. De starter med et dollartegn, som efterfølges af variablens navn. Alle variabler i det samme array har det samme navn i vores eksempel hedder de kurv. Når alle variablerne i array et hedder det samme, så må man finde en anden måde at kende forskel på dem. Det bruger man tallet i den kantede parentes til. Vores kurv-array indeholder tre variabler, som har nummer 0, 1 og 2. Det med nummereringen er også lidt specielt, men man starter som regel med at kalde det første element i et array for nummer 0. Den sidste linje udskriver de tre variabler i array et. Som du kan se, gøres det på præcis samme måde, som vi normalt udskriver variabler. Måske er det lidt svært at se, hvad fordelen er ved at bruge arrays. Vi har stadigvæk skrevet alle variablerne én gang for at tildele dem en værdi og én gang for at udskrive dem. Det er fair nok, for vi er slet ikke kommet til alt det smarte ved arrays endnu men hav en smule tålmodighed, for når vi kommer til kapitel 6 om løkker og strukturer, så vil du se masser af fordele ved arrays. Genvej til arrays Det er ikke strengt nødvendigt at skrive tallene i de kantede parenteser efter array ets navn, som vi gjorde i eksempel 4.6. Hvis vi undlader tallene i parentesen, når vi opretter array et, vil PHP automatisk indsætte tallene fortløbende startende med nummer 0. Nedenstående eksempel 4.7 har altså samme virkning som koden i eksempel 4.6. $kurv[] = "Ananas"; $kurv[] = "Agurk"; $kurv[] = "Tomat"; echo "Du har disse varer i indkøbskurven: $kurv[0], $kurv[1], $kurv[2]"; Eksempel 4.7 Arrays uden tal. 17 FORLAGET LIBRIS