Page 1

Webbutveckling med PHP och MySQL Montathar Faraon


Kopieringsförbud Detta verk är skyddat av upphovsrättslagen. Kopiering, utöver lärares och studenters begränsade rätt att kopiera för undervisningsändamål enligt Bonus Copyright Access kopieringsavtal, är förbjuden. För information om avtalet hänvisas till utbildningsanordnarens huvudman eller Bonus Copyright Access. Vid utgivning av detta verk som e-bok, är e-boken kopieringsskyddad. Den som bryter mot lagen om upphovsrätt kan åtalas av allmän åklagare och dömas till böter eller fängelse i upp till två år samt bli skyldig att erlägga ersättning till upphovsman eller rättsinnehavare. Studentlitteratur har både digital och traditionell bokutgivning. Studentlitteraturs trycksaker är miljöanpassade, både när det gäller papper och tryckprocess. Art.nr 35569 isbn 978-91-44-10556-7 Upplaga 2:1 © Montathar Faraon och Studentlitteratur 2016 studentlitteratur.se Studentlitteratur AB, Lund Fackgranskning: Magnus Sahlberg, Jenny Folkesson, Daniel Toll, Fredrik Axelsson, Mikael Roos och Marcus Fogelberg Omslagslayout: Jens Martin/Signalera Omslagsikoner: Shutterstock Kapitelbilder: iStockphoto [Kap 1 och 2] och Shutterstock [Alta Oosthuizen (Kap 3), David Franklin (Kap 4), Gajus (Kap 5), Catarina Belova (Kap 6), Bjoern Wylezich (Kap 7), Andrea Izzotti (Kap 8), Rawpixel.com (Kap 9)] Illustrationer: Jonas von der Crone Porträttfotograf: Jörgen Harre Printed by Interak, Poland 2016


INNEHÅLL

Förord 9

KAPITEL 1

1.1 1.2 1.3 1.4 1.5 1.6 1.7

Användningsområden 14 Historik 15 Installation 17 Integrerad miljö för webbutveckling 18 Indentering 19 Kommentering 20 Övningar 23

KAPITEL 2

2.1 2.2 2.3

2.4

Introduktion 11

Variabler 25

Tilldelning och användning 26 Utskrift av innehåll 28 Datatyper 30 2.3.1 Boolesk 30 2.3.2 Heltal 31 2.3.3 Flyttal 32 2.3.4 Sträng 33 2.3.5 Vektor 42 2.3.6 Objekt 47 2.3.7 Resurs 47 2.3.8 Null 47 Miljövariabler 47 2.4.1 SERVER 48 2.4.2 GET 49

© F Ö R FAT TA R E N O C H S T U D E N T L I T T E R AT U R

5


innehåll

2.5

2.4.3 POST 54 2.4.4 COOKIE 56 2.4.5 REQUEST 62 2.4.6 FILES 63 2.4.7 SESSION 79 Övningar 88

KAPITEL 3

3.1 3.2

Tilldelning och användning 92 Övningar 94

KAPITEL 4

4.1 4.2 4.3 4.4 4.5 4.6 4.7

6

Villkorssatser 107

If 108 If ... else 109 If ... elseif 110 Switch 112 Övningar 114

KAPITEL 6

6.1 6.2 6.3 6.4 6.5

Operatorer 95

Aritmetiska operatorer 96 Tilldelningsoperatorer 96 Jämförelseoperatorer 98 Logiska operatorer 100 Strängoperatorer 102 Upp- och nedräkningsoperatorer 104 Övningar 105

KAPITEL 5

5.1 5.2 5.3 5.4 5.5

Konstanter 91

Iterationer 115

For 116 Foreach 118 While 120 Do ... while 121 Övningar 122 © F Ö R FAT TA R E N O C H S T U D E N T L I T T E R AT U R


innehåll

KAPITEL 7

7.1 7.2 7.3 7.4 7.5 7.6

Struktur och användning 124 Parametrar och argument 125 Returvärden 128 Passing by value och by reference 128 Inbyggda funktioner 130 Övningar 130

KAPITEL 8

8.1 8.2

8.3

8.4

8.5

8.6

8.7

Funktioner 123

Databaser 133

SQL 135 Databashantering 136 8.2.1 Skapa databas 136 8.2.2 Välja databas 139 8.2.3 Radera databas 139 Tabeller 141 8.3.1 Datatyper 141 8.3.2 Skapa tabell 146 8.3.3 Uppdatera tabell 149 8.3.4 Radera tabell 150 Databasuppkoppling 152 8.4.1 Kom i gång med Bootstrap 152 8.4.2 Skapa uppkoppling mot en databas 155 Poster 159 8.5.1 Lägga till poster 159 8.5.2 Hämta poster 172 8.5.3 Uppdatera poster 179 8.5.4 Radera poster 190 Relationsdatabaser 199 8.6.1 Normalisering 200 8.6.2 Relationsdiagram 207 8.6.3 JOIN-satser 214 Övningar 223

© F Ö R FAT TA R E N O C H S T U D E N T L I T T E R AT U R

7


innehåll

KAPITEL 9

9.1 9.2 9.3 9.4 9.5 9.6

Felsökning 225

Felrapportering 226 Syntaxfel 228 Semantiska fel 229 Externa fel 231 Logiska fel 232 Övningar 232

Sakregister 233

8

© F Ö R FAT TA R E N O C H S T U D E N T L I T T E R AT U R


KAPITEL 3

Konstanter


konstanter

Konstant är ett annat sätt för att tilldela värden. Som namnet antyder kan eller får inte en konstant ändras under tolkning av kod. Med andra ord kan du se en konstant likt en identifierare vars värde inte kan ändras.

3.1 Tilldelning och användning Konstanter kan innehålla samma uppsättning av bokstäver som variabler och får inte föregås av dollartecknet ( $ ). Syntax för en konstant är: Syntax för en konstant

define('NAMN PÅ KONSTANT', 'värden'); Följande punkter är värda att känna till vad gäller konstanter: • • • •

Du använder funktionen define() för att skapa konstanter. Namn på konstanter anges med stora bokstäver. Värden i konstanter kan inte ändras, till skillnad från variabler. Konstanter använder du oftast till att definiera information som inte bör ändras eller inte normalt behöver ändras, exempelvis databasuppgifter eller information om utgivaren av en webbplats. • Från och med PHP 7 kan du skapa en konstant som består av en vektor. Studera följande kodexempel som visar hur du skapar en konstant som består av en vektor: Kodexempel 78 1 2 3 4 5 6

PHP

<? php // Deklarerar en konstant som vest å r av en vektor define ( ' LUCKY_NUMBERS ' , [26 , 8 , 84 , 5 , 10 , 83]); // Skriver ut f ö rsta siffran (26) echo LUCKY_NUMBERS [0]; ?>

Följande kodexempel visar hur du skapar konstanter för att presentera information om en utgivare av en webbplats. Följande konstanter skapas: • Adress till webbplatsen ( SITE ) • Utgivaren ( AUTHOR )

92

© F Ö R FAT TA R E N O C H S T U D E N T L I T T E R AT U R


konstanter

Studera följande kodexempel som visar hur du använder konstanter. Kodexempel 79 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

HTML

PHP

<? php // Deklarerar tv å konstanter define ( " SITE " , " socialamedier . net " ); define ( " AUTHOR " , " M . Faraon " ); ?> < !DOCTYPE html > < html > < head > < meta charset = " utf -8 " > < title > Konstanter </ title > </ head > < body > <? php // Skriver ut " socialamedier . net " echo ' <p > ' . SITE . ' </p > '; // Skriver ut " M . Faraon " echo ' <p > ' . AUTHOR . ' </p > '; // Skriver ut " socialamedier . net utvecklat av M . Faraon " echo SITE . ' utvecklat av ' . AUTHOR ; ?> </ body > </ html >

Texten "socialamedier.net utvecklat av M. Faraon" beskriver vem som har utvecklat webbplatsen, vilket kan inkluderas på samtliga sidor. Om domänen ändras i framtiden, behöver du enbart justera konstanterna för att samtliga sidor ska uppdateras. Observera att konstanter som standard är skiftlägeskänsliga, vilket innebär att det är skillnad på om du skriver med små eller stora bokstäver. Om du tittar på föregående kodexempel kan du inte skriva Site för att skriva ut webbplatsen, utan det måste vara SITE . Det finns ett par punkter som du bör ha i åtanke för att särskilja variabler från konstanter: • Konstanter inleds inte med ett dollartecken ( $ ). • Konstanter definieras med hjälp av define() och inte genom enkel tilldelning. Läs vidare: php.net/define. Det är även värt att titta på funktionen defined() som kontrollerar ifall en konstant existerar och funktionen constant() som returnerar värdet av en definierad konstant. • Konstanter kan inte förändras när de väl har blivit definierade. Ett felmeddelande genereras om du försöker omdefiniera en konstant. • Konstanter kan deklareras var som helst utan hänsyn till variabler. © F Ö R FAT TA R E N O C H S T U D E N T L I T T E R AT U R

93


konstanter

I PHP finns det en mängd fördefinierade konstanter. Studera följande kodexempel som visar hur du kan få fram värdet för den matematiska konstanten PI genom den fördefinierade konstanten M_PI . Studera följande kodexempel: Kodexempel 80 1 2 3 4 5 6 7 8 9 10 11 12 13

HTML

PHP

< !DOCTYPE html > < html > < head > < meta charset = " utf -8 " > < title > PI </ title > </ head > < body > <? php // Skriver ut PI echo M_PI ; ?> </ body > </ html >

Föregående kodexempel genererar följande utskrift i webbläsaren: 3.1415926535898

En lista över fördefinierade konstanter finns på: php.net/reserved.constants

94

© F Ö R FAT TA R E N O C H S T U D E N T L I T T E R AT U R


Montathar Faraon, fil.mag. i pedagogik med inriktning mot datavetenskap och psykologi, undervisar i PHP vid Högskolan Kristianstad och har stor erfarenhet av webbutveckling. Han arbetar som doktorand i människa-maskin-interaktion vid Stockholms uni­ver­­sitet och forskar om sociala medier som stöd för demokratiskt deltagande.

Webbutveckling med PHP och MySQL PHP är ett av de ledande programmeringsspråken för webbutveckling. Det är ett flexibelt och enkelt språk som används för att skapa dyna­miska webbplatser. Denna bok ger en lättillgänglig introduktion till PHP och databashantering. Läsaren får den kunskap som krävs för att snabbt utveckla egna webbapplikationer. Boken förutsätter inga tidigare erfarenheter av webbprogrammering. Läsaren leds framåt genom ett rikt utbud av övningar som ger möjlighet att tillämpa innehållet. Denna andra utgåva av boken har reviderats och uppdaterats grundligt. Bland nyheterna finns PHP 7, databashantering med PHP Data Objects (PDO), fler helhetsexempel samt kodexempel i färg. Webbutveckling med PHP och MySQL är avsedd för universitets- och gym­nasiestudier i webbprogrammering, men är även en handbok för yrkes­verksamma webbutvecklare och programmerare. ”En intresseväckande bok som pedagogiskt handleder läsaren från de absoluta grunderna till mer omfattande hantering av PHP och MySQL.” – Ida Rosén, student i informatik vid Högskolan Kristianstad ”Boken utgör ett välkommet bidrag i att göra programmering begriplig och tillgänglig.” – Robert Ramberg, professor i data- och systemvetenskap vid Stockholms universitet ”En lättanvänd bok för nybörjare som vill lära sig att programmera i PHP som även har ett djup för den som vill utveckla sig ytterligare.” – Marcus Fogelberg, lärare i programmering vid NTI-gymnasiet Malmö Andra upplagan

studentlitteratur.se

Art.nr 35569

9789144105567