Voorwoord 1. Voorwoord



Vergelijkbare documenten
Formulier maken en opvangen met php

Formulieren maken met Dreamweaver CS 4/CS 5

Javascript oefenblad 1

De tag aan het begin van het PHPscript is "<?php" aan het einde van het PHPscript gebruik je "?>".

Variabelen en statements in ActionScript

Les 9: formulier controle met javascript.

Software 1. php mysql. bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar semester 1

van PSD naar JavaScript

Inhoudsopgave Disclaimer... 3 Voorwoord... 4 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

Dynamische websites met PHP (basis) Karel Nijs 2010/09

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren

Handleiding Wordpress

Les W-04: Een introductie in PHP

Arrays en Foreach. Huub de Beer. Eindhoven, 4 juni 2011

Voor vragen: of mail naar

MINICURSUS PHP. Op dit lesmateriaal is een Creative Commons licentie van toepassing Sebastiaan Franken en Rosalie de Klerk Bambara

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Dynamische websites met PHP (basis) Karel Nijs 2010/09

Foutcontrole met Javascript

ideal Betaal Formulier (Ondersteund o.a. ideal, MisterCash, Direct E-Banking en Credit Card)

1 Inleiding Installatie 21. WAMP met Apache Friends 23. XAMPP starten en controleren 26. LAMP 32 De installatie ongedaan maken 33

JavaScript. 0 - Wat is JavaScript? JavaScript toevoegen

A.C. Gijssen. 0.3 PHP en MySQL

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

Formulieren en waarden posten naar een view

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Programmeerstructuren met App Inventor

Formulieren maken met Dreamweaver CS 4

Test Joomla op je PC 1

Programmeren voor het web met PHP

Inhoudsopgave... 1 Disclaimer... 3 Voorwoord... 3 Inleiding... 5 Het downloaden van XAMPP... 7 Het installeren van XAMPP... 8 Joomla installeren op

Les 15 : updaten van gegevens in de database (deel2).

De Kleine WordPress Handleiding

Blog-Het gebruik van variabelen in Excel VBA

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.

VAN HET PROGRAMMEREN. Inleiding

Handleiding: Whitelabel Customersite

BEGINNER JAVA Inhoudsopgave

De WordPress 3.5 Beginners Handleiding

Website maker. Bezoek je domein om de Website maker in te stellen. De volgende melding zal zichtbaar zijn.

Vakgroep CW KAHO Sint-Lieven

Les 3: Het maken van pagina s, het menu en het schrijven van een blogpost Pagina s

Dynamiek met VO-Script

9. MYSQL. Daarin zien we het administratie paneel van mysql.

Programmeren met Arduino-software

HTML in Outlook Hoe zorgt u ervoor dat uw goed in beeld komt?

Webscripting. PCVO Gent & OBAC. Willem De Meyer

Inhoud. Pagina 2 van 13


Dynamische Websites. Week 2

HANDLEIDING DOIT BEHEER SYSTEEM

Simon de schildpad J van Weert 1

Hoofdstuk 1 Inleiding PHP 7 of ouder Hoe dit boek werkt 2

Quick Guide VivianCMS

Programmeren in Java les 3

v.1.30 Genkgo Handleiding Webshop Applicatie Producten verkopen op uw website

HTTP SMS API Technische Specificatie messagebird.com versie mei 2014

Technisch ontwerp. Projectteam 6. Project "Web Essentials" 02 april Versie 2.1.0

Startgids 061 Nieuw product aanmaken en wijzigen

Koppeling met een database

Lab Webdesign: Javascript 11 februari 2008

DrICTVoip.dll v 2.1 Informatie en handleiding

Lab Webdesign: Javascript 11 februari 2008

Je hoeft je maar met twee bestanden bezig te houden:

Functies. Huub de Beer. Eindhoven, 4 juni 2011

En hoe gaan ze dit allemaal terugvinden?

Verder zijn er de nodige websites waarbij voorbeelden van objectgeoriënteerd PHP (of Objec Oriented PHP, OO PHP) te vinden zijn.

#Stap 1 Uw account activeren en inloggen

PHP. Les 4 : Variabelen

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Lab Webdesign: Javascript 25 februari 2008

Handleiding bij de Booktest Generator

Een database gebruiken

Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie

Bijlage Inlezen nieuwe tarieven per verzekeraar

Ik zal je nu stap voor stap laten zien hoe je je product op je website als betaalde download kunt aanbieden.

Simon de schildpad J van Weert 1

Lab Webdesign: Javascript 7 april 2008

Gebruikershandleiding voor: Beperkte Password protectie met JavaScript

Opzetten van een evenement

Over PHP. PHP en MySQL. 1.1 Inleiding. In dit hoofdstuk maak je kennis met PHP. Hoe werkt deze

ChainWise digitaal factureren

CS-WebDesign.nl. Invoeren van een product in de editor

Quick Guide VivianCMS

Handleiding RS Form! 1.0.4

HANDLEIDING TRACK & 1. Track & Trace s bewerken Algemeen s s bewerken Triggers Beschikbare Tags 5

v.1.11 Verenigingenweb Plus Handleiding Website in gebruik nemen

Lab Webdesign: Javascript 3 maart 2008

Hosting. Bestelformulier en domeinnaamcontrole. Januari, WeFact B.V. Kuiper 7a 5521 DG Eersel Nederland. w: e:

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010

Handleiding Wordpress CMS

In het laatste voorbeeld zal de volledige prijs worden berekend als er voor vol tarief wordt gekozen, anders wordt 40% korting berekend.

Web building gevorderden: CSS & JavaScript. Karel Nijs 2008/11

Een spoedcursus python

Quickstart handleiding

Transcriptie:

Voorwoord 1 Voorwoord Naar aanleiding van vele PHP gerelateerde vragen en het ontbreken van een duidelijke on line Nederlandse beginnershandleiding, heb ik in december 2007 besloten om zo n handleiding zelf te schrijven. Deze handleiding is sinds januari 2008 op mijn website te vinden. In eerste instantie was het de bedoeling om deze handleiding enkel online te publiceren. Vele positieve reacties en de vraag of er ook nog een printbare versie van deze handleiding zou komen, hebben mij doen besluiten om hem ook in boekvorm uit te geven. Inspiraties voor de inhoud en opbouw van deze handleiding heb ik voornamelijk opgedaan aan de hand van bestaande handleidingen van onder ander Arjen Kapteijn en Robert Deiman. Met deze informatie ben ik verder aan de slag gegaan en heb deze verder uitgebreid en dit is het uiteindelijke resultaat. Ik wens je veel succes met het lezen van deze handleiding en waarschijnlijk je eerste stappen als PHP programmeur. Joren de Wit.

2 PHP Beginnershandleiding

Inhoudsopgave 3 Inhoudsopgave VOORWOORD... 1 1. INLEIDING... 5 Wat is PHP?... 5 Voorkennis... 5 Wat heb ik nodig?... 5 2. MIJN EERSTE PHP SCRIPT... 6 Ons eerste PHP bestand... 6 Alternatieve open en sluittags... 7 Echo... 7 3. VARIABELEN... 8 Aanmaken van variabelen... 8 Verschillende typen variabelen... 8 Commentaar... 8 Naamgeving... 9 Variabelen buiten quotes... 9 Rekenen met variabelen...10 4. STATEMENTS...11 If/else statements...11 Switch statement...13 5. LOOPS...15 While...15 For...15 6. ARRAYS...17 Het aanmaken van een array...17 ENKELVOUDIGE ARRAYS...17 Uitlezen van waarden uit een array...18 Foreach loop...18 Het toevoegen van waarden aan een array...20 Associatieve arrays...20 MULTIDIMENSIONALE ARRAYS...21 Aanmaken...21 Uitlezen...22 Toevoegen...23 7. FUNCTIES...25 Zelf functies schrijven...25 Functies zonder parameters...25 Functies met parameters...26 Meer functies......26 Een controle functie...27 Optionele parameters: BTW?...28 8. FORMULIEREN...30 DE HTML CODE...30 VERWERKING VAN HET FORMULIER: DE CODE...30 VERWERKING VAN HET FORMULIER: DE UITLEG...32 1. Controleren of een formulier gepost is...32 2. Controleren of de vereiste velden ingevuld zijn...32 3. Eventuele andere controles op de velden uitvoeren...33 4. Geen errors? Gegevens verwerken...33 5. Wel errors? Fouten weergeven en terug naar formulier...33 UITBREIDEN VAN HET FORMULIER...34

4 PHP Beginnershandleiding VERWERKING VAN HET UITGEBREIDE FORMULIER... 35 9. SUPERGLOBALS...38 $_GET... 38 $_POST... 39 $_FILES... 39 $_SERVER... 40 $_SESSION... 41 $_COOKIE... 41 Cookies aanmaken... 42 Uitlezen van de cookie...42 $_REQUEST... 42 10. SESSIES NADER BEKEKEN: EEN EERSTE LOGINSCRIPT...43 DE HTML CODE... 43 HET PHP SCRIPT... 43 DE BEVEILIGDE PAGINA... 46 11. NETJES SCRIPTEN...47 INSPRINGEN... 47 COMMENTAAR... 49 12. DEBUGGEN: HET OPLOSSEN VAN PHP FOUTEN...50 Regels toegevoegd maar geen fouten te zien?...50 DEBUGGEN... 50 Parse error...51 Undefined variable...51 Undefined index...52 Parse errors: unexpected $end...53 Header already sent...53 Ik krijg niets te zien?...54

1. Inleiding 5 1. Inleiding Welkom bij deze PHP beginners handleiding waarin ik de basis van het programmeren in PHP zal uitleggen. Met deze handleiding zal ik proberen om je, aan de hand van vele voorbeelden, een degelijke basiskennis van het gebruik van PHP te geven. Met deze basiskennis kun je daarna zelf aan de slag en je storten op het programmeren van mooie applicaties en websites. Wat is PHP? PHP is een programmeertaal die voornamelijk gebruikt wordt voor het bouwen van dynamische websites. De eerste versie van deze scripttaal verscheen in 1995 en de afkorting stond toen voor 'Personal Home Page tool'. Tegenwoordig wordt deze afkorting eigenlijk niet meer gebruikt en zien we enkel nog de omschrijving 'PHP: Hypertext Preprocessor' als we zouden zoeken naar de betekenis van PHP. Deze omschrijving is dan ook een stuk toepasselijker aangezien PHP in veel meer toepassingen gebruikt wordt dan enkel persoonlijke webpagina s. De term 'hypertext preprocessor' geeft aan waar PHP in de meeste gevallen voor gebruikt wordt: het verwerken van gegevens tot hypertext (HTML). PHP is een server side scripttaal en wordt door de webserver uitgevoerd, in tegenstelling tot bijvoorbeeld HTML, CSS en Javascript, talen die door de browser geïnterpreteerd of uitgevoerd worden. Dit betekent dus ook dat PHP uitgevoerd wordt voordat er iets door de browser gedaan wordt, hetgeen ons in staat stelt om dynamisch HTML te genereren en naar de browser te sturen. Voorkennis Bij het lezen van deze handleiding is het makkelijke als je enige kennis van het bouwen van websites en het gebruik van HTML hebt. Zoals je merkt zijn er nu al wat termen gevallen, die je wellicht bekend voorkomen. Om deze handleiding te kunnen volgen is het bezit van deze kennis echter niet noodzakelijk. Wat heb ik nodig? Zoals gezegd is PHP een server side scripttaal. Je moet dus beschikking hebben over een webserver met PHP ondersteuning. Veel gratis webhosts ondersteunen geen PHP en ook op de webruimte die je van je provider krijgt, is PHP vaak niet beschikbaar. Ikzelf raad aan om een webserver op je eigen PC te installeren en deze server te gebruiken om je PHP scripts te testen. Een compleet pakket voor Windows met daarin een webserver, PHP en een database server is WAMP 1. Dit pakket is zeer eenvoudig te installeren en bevat alles wat je in deze handleiding nodig zult hebben. Alternatieven voor Mac OS X en Linux zijn respectievelijk MAMP en XAMPP. Tenslotte heb je een goede editor nodig. Omdat het schrijven van PHP nogal nauw luistert en er dus eenvoudig foutjes in je scripts kunnen sluipen, is het gebruik van een goede editor noodzakelijk om deze foutjes snel op te kunnen sporen. Een voorbeeld van een goede gratis editor is Eclipse PDT 2. Zo, nu weten we een klein beetje wat PHP is en doet. Laten we snel beginnen met het eigenlijke werk... 1 Windows Apache MySQL PHP, download: http://www.wampserver.com 2 Download: http://www.eclipse.org/pdt

6 PHP Beginnershandleiding 2. Mijn eerste PHP script Zoals we in de inleiding hebben kunnen lezen, is PHP een server side scripttaal. Dit houdt in dat de PHP code door de server verwerkt (geparsed) moet worden waarna een eventuele uitkomst naar de browser gestuurd wordt. Standaard is de webserver zo ingesteld dat bestanden, die eindigen op de extensie.php, door de server als PHP script geparsed worden. Zo'n.php bestand hoeft niet alleen PHP code te bevatten, er kan net zo goed HTML, CSS en Javascript in voorkomen. We zullen de server dus duidelijk moeten maken welke delen PHP code bevatten en welke delen dus door de server verwerkt moeten worden. Dit kunnen we aangeven met behulp van de php tags: 2. 3.?> Alle code die we tussen deze twee tags plaatsen, wordt door de server geparsed en tussen deze twee tags is het dus mogelijk om op een of andere manier HTML te genereren. Het grote voordeel hiervan is dat we een mogelijkheid krijgen om op een dynamische manier HTML code uit te spugen. Dat de code geparsed wordt door de server en deze alleen HTML uitspuugt, is tevens de reden dat je nooit PHP code in de bron van een pagina tegen zult komen. Deze is immers allemaal door de server omgezet. Ons eerste PHP bestand Laten we eens kijken naar een voorbeeld van een PHP bestand: 1. <html> 2. <head> 3. <title>mijn eerste php script!</title> 4. </head> 5. 6. <body> 7. <?php 8. echo 'Hello World!'; 9.?> 10. </body> 11. 12. </html> Bovenstaande code is een voorbeeld van hoe een webpagina opgebouwd wordt. Zoals je wellicht al wist bestaat een HTML pagina altijd uit <html>, <head> en <body> tags. In de <body> tag hebben we nu een stukje PHP, dat de tekst 'Hello World!' op het scherm zet, staan. Kopieer de code naar een leeg document in je editor en sla het op als bijvoorbeeld index.php. Open de pagina vervolgens in je webbrowser en je zult het volgende resultaat zien: Hello World! In het voorbeeld zien we dat we 'echo' in PHP kunnen gebruiken om HTML naar de browser te sturen. Alles wat we tussen de <body> tags in de HTML code echoën, zal dan ook op het scherm weergegeven worden. De gebruikte HTML code in de pagina zorgt ervoor dat de browser begrijpt wat hij weer moet geven. Het volgende voorbeeld waarin enkel HTML gebruikt wordt, zal precies dezelfde output geven:

2. Mijn eerste PHP script 7 1. <html> 2. <head> 3. <title>mijn eerste php script!</title> 4. </head> 5. 6. <body> 7. Hello World! 8. </body> 9. </html> Misschien zul je je nu afvragen wat nou het nut van PHP is, maar dat zal later in deze handleiding blijken. Even geduld nog. Dit waren de eerste maar tevens ook de laatste voorbeelden waarin ik zoveel HTML code zal gebruiken. Om de voorbeelden duidelijk en overzichtelijk te houden, zal ik vanaf nu enkel de PHP code gebruiken. Vergeet echter niet dat in de uiteindelijke webpagina de HTML wel aanwezig moet zijn! Alternatieve open en sluittags In plaats van de uitgebreide <?php en?> tags, zouden we ook <? en?> kunnen gebruiken. Het gebruik van deze zogenaamde 'shorttags' is echter niet aan te raden omdat deze instelling lang niet op alle servers aan staat en deze servers PHP code tussen shorttags niet als dusdanig herkennen. Wij gebruiken daarom netjes de volledige open en sluittags. Echo In het eerste voorbeeld hebben we gebruik gemaakt van een echo om tekst op het scherm te zetten. We zien dat de echo gevolgd wordt door een stukje tekst tussen twee enkele quotes (') en dat de regel afgesloten wordt met een punt komma (;). Dit is de standaard manier waarop een regel in PHP afgesloten wordt.

8 PHP Beginnershandleiding 3. Variabelen Variabelen kunnen we gebruiken om tijdelijk gegevens in op te slaan. Deze gegevens kunnen bijvoorbeeld bestaan uit getallen (integers) of stukken tekst (strings), maar kunnen bijvoorbeeld ook waar/niet waar gegevens (booleans) of een reeks gegevens (array) bevatten. Eigenlijk alles wat we in PHP kunnen aanmaken, kunnen we in een variabele zetten. Aanmaken van variabelen Het aanmaken van een variabele, ook wel declareren genaamd, doe je door een dollarteken ($) gevolgd door een zelf gekozen naam te tikken. Met het is gelijk aan (=) teken kunnen we vervolgens een waarde aan de variabele toekennen. Tenslotte sluiten we de regel weer af met een punt komma zoals dat bij elke PHP regel hoort. 2. $tekst = 'Hello World!'; 3. echo $tekst; 4.?> In dit stukje code declareren we de variabele $tekst en kennen er de waarde 'Hello World!' aan toe. Vervolgens gebruiken we een echo om de inhoud van $tekst op het scherm te zetten. De output is als volgt: Hello World! Verschillende typen variabelen Zoals ik al eerder vermelde, kunnen we werkelijk alles binnen PHP opslaan in een variabele. Afhankelijk van de inhoud hoort een variabele tot een bepaald type. Enkele voorbeelden: 2. $tekst = 'Hello World!'; // String 3. $leeftijd = 20; // Integer 4. $prijs = 135.75; // Float 5. $check = true; // Boolean 6.?> Dit zijn enkele voorbeelden van verschillende typen variabelen. De eerste variabele $tekst hebben we al eerder gezien en bevat een string. Als je getallen in een variabele opslaat, zijn het integers als het gehele getallen betreft en floats als je het over decimale getallen hebt. Een variabele die aangeeft of iets waar of niet waar is, noem je een boolean. Een type variabele die nog niet in dit voorbeeld staat, is de array. Over deze variabele komen we later in deze handleiding nog te spreken. Zoals we zien wordt een string in PHP altijd tussen enkele quotes geplaatst. Bij een integer, float of boolean gebruiken we geen quotes. Commentaar Iets anders dat we in bovenstaand voorbeeld zien zijn de stukjes die vooraf gegaan worden door een dubbele slash (//). Dit is de manier waarop we commentaar bij de code kunnen zetten. Er zijn drie mogelijke manieren:

3. Variabelen 9 2. // Dit is een enkele regel commentaar 3. 4. # Ook dit is een enkele regel commentaar 5. 6. /* Dit is een commentaar blok 7. dat over meerdere regels verdeeld 8. kan zijn. */ 9.?> Het aanbrengen van commentaar in je code heeft een aantal doelen. Allereerst gebruik je het zodat anderen, die je code lezen, begrijpen wat bepaalde delen uit je code doen. Daarnaast is het ook voor jezelf handig als je na een paar maanden je code weer wilt aanpassen en je niet precies meer weet wat je nu gedaan had. Het commentaar kan dan een hoop verduidelijken. Tenslotte kun je commentaar gebruiken om tijdens het debuggen van je script een bepaald deel van de code niet uit te voeren. Commentaar wordt namelijk niet geparsed door de webserver. Naamgeving Naamgeving van variabelen is belangrijk. Probeer altijd een naam te kiezen die iets over de inhoud van een variabele zegt. Een variabele als $tekst zegt natuurlijk weinig over de inhoud, dus je hebt geen idee wat erin staat. Geldige variabele namen beginnen met een letter (a z) of underscore (_) en bevatten verder enkel letters, cijfers of underscores. Een goede manier van naamgeven is bijvoorbeeld $swelkomsttekst. Hierin geeft de eerste 's' aan dat het een string betreft en de rest van de naam geeft informatie over de inhoud. 2. $swelkomsttekst = 'Hello World!'; // String 3. $ileeftijd = 20; // Integer 4. $fprijs = 135.75; // Float 5. $bcheck = true; // Boolean 6.?> Dit is de manier die ik in de rest van de handleiding zal hanteren. Variabelen buiten quotes Bovenstaand voorbeeld laat zien hoe we een enkele variabele kunnen echoën. Maar het zal vaak genoeg voorkomen dat je een variabele in een deel van een string wilt echoën of dat je meerdere variabelen achter elkaar wilt echoën. Nu weten we dat strings altijd tussen enkele quotes moeten staan, maar als we de variabele ook tussen de quotes zetten, gaat het niet helemaal goed. Een variabele tussen enkele quotes wordt namelijk niet geparsed, de naam van de variabele wordt in dat geval weergegeven. Dat is de reden dat we variabelen altijd 'buiten quotes halen'. 2. $swelkomsttekst = 'Hello World!'; 3. 4. echo 'Dit is de welkomsttekst: $swelkomsttekst <br />'; // FOUT 5. echo 'Dit is de welkomsttekst: '.$swelkomsttekst.' <br />'; // GOED 6.?> Dit is de welkomsttekst: $swelkomsttekst Dit is de welkomsttekst: Hello World! Het blijkt dat de eerste echo niet helemaal goed gegaan is. In plaats van de inhoud van de variabele wordt nu de naam weergegeven. De oplossing wordt zoals gezegd ook wel het 'variabele buiten

10 PHP Beginnershandleiding quotes halen' genoemd. Dit doen we door de string tijdelijk af te sluiten met een enkele quote. Vervolgens kunnen we de variabele er aan vast plakken met het concatenatieteken (.) om daarna wederom een concatenatieteken te gebruiken en verder te gaan met de string die we echoën. Ditzelfde principe kun je gebruiken om meerdere variabelen achter elkaar weer te geven: 2. $svoornaam = 'Joren'; 3. $sachternaam = 'de Wit'; 4. $x = 1; 5. $y = 2; 6. $z = 3; 7. 8. $snaam = $svoornaam.' '.$sachternaam; 9. echo $snaam.'<br />'; 10. echo $x.$y.$z; 11.?> Joren de Wit 123 Eerst hebben we $svoornaam en $sachternaam met een spatie ertussen samengevoegd tot $snaam. Daarna hebben we de verschillende variabelen $x, $y en $z geëchoed. Rekenen met variabelen We hebben al gezien dat we variabelen kunnen echoën, maar dat is niet het enige. Het rekenen met variabelen in PHP is iets dat we veelvuldig zullen gebruiken. Enkele voorbeelden: 2. $iaantal = 10; 3. $fprijs = 9.95; 4. 5. $fsubtotaal = $iaantal * $fprijs; 6. echo 'Subtotaal: '.$fsubtotaal.'<br />'; 7. 8. $fbtw = $fsubtotaal * 0.19; 9. $ftotaal = $fsubtotaal + $fbtw; 10. echo 'Totaal: '.$ftotaal; 11.?> Subtotaal: 99.5 Totaal: 118.405 Andere operators die je kunt gebruiken om berekeningen uit te voeren zijn de voor het aftrekken van twee waarden en de / om twee waarden op elkaar te delen. Een volledig overzicht met alle rekenkundige operators vind je op php.net 1. 1 Zie http://www.php.net/operators, onder arithmic operators

4. Statements 11 4. Statements Nu we een beetje weten hoe we met variabelen in PHP kunnen werken, is het tijd om iets verder te kijken. Alles dat we tot nu toe gezien hebben, zouden we in principe ook nog met simpele HTML code kunnen bereiken. Laten we nu eens wat dieper ingaan op een van de dynamische aspecten van PHP. If/else statements Statement is het Engels voor 'voorwaarde' en wordt zeer veel in PHP scripts gebruikt. Met PHP is het mogelijk om verschillende acties uit te voeren afhankelijk van de uitkomst van een bepaalde voorwaarde. De meest simpele voorwaarde die we kunnen stellen is de vergelijking van twee waarden. Zo zou je PHP bijvoorbeeld kunnen laten bepalen of een variabele groter of kleiner is dan 5 en afhankelijk daarvan een reactie geven. De makkelijkste constructie waarin we zo'n statement op kunnen nemen is een if/else constructie. De syntax ziet er als volgt uit: 2. if( statement ) 3. { 4. // Doe iets 5. } 6. else 7. { 8. // Doe iets anders 9. } 10.?> De constructie begint met een if en vervolgens de voorwaarde tussen haakjes erachter. Tussen accolades {} volgt vervolgens het gedeelte dat uitgevoerd wordt als aan de vooraarde voldaan wordt. De else, die overigens niet verplicht is, bevat een alternatieve actie die uitgevoerd wordt als niet aan de voorwaarde voldaan wordt. 2. $x = 4; 3. if($x > 5) 4. { 5. echo $x.' is groter dan 5'; 6. } 7. else 8. { 9. echo $x.' is niet groter dan 5'; 10. } 11.?> 4 is niet groter dan 5 Allereerst kennen we de waarde 4 aan de variabele $x toe. Vervolgens controleren we in het ifstatement of de variabele $x groter is dan 5 en voeren afhankelijk van die uitkomst een actie uit. In dit geval is dat een echo die de betreffende situatie omschrijft. De if/else constructie uit het vorige voorbeeld kunnen we nog iets verder uitbreiden:

12 PHP Beginnershandleiding 2. $x = 5; 3. 4. if($x > 5) 5. { 6. echo $x.' is groter dan 5'; 7. } 8. elseif($x == 5) 9. { 10. echo $x.' is precies 5'; 11. } 12. else 13. { 14. echo $x.' is niet groter dan 5'; 15. } 16.?> 5 is precies 5 Op deze manier kunnen we een if/elseif/else constructie in theorie oneindig ver uitbreiden. Er zit namelijk geen beperking op het aantal elseif statements. Ook is het mogelijk om meerdere vergelijkingen in 1 statement op te nemen. Zo zouden we bijvoorbeeld kunnen controleren of $x groter is dan 5 en $y kleiner is dan 10: 2. $x = 6; 3. $y = 8; 4. 5. if($x > 5 && $y < 10) 6. { 7. echo '$x is groter dan 5 en $y is kleiner dan 10'; 8. } 9.?> $x is groter dan 5 en $y is kleiner dan 10 Met behulp van de && (AND) operator kunnen we dus controleren of aan beide vergelijkingen voldaan wordt. De tegenhanger hiervan is de (OR) operator waarmee je controleert of aan minimaal 1 van de vergelijkingen voldaan wordt. In voorgaande voorbeelden hebben we enkel gekeken of een bepaalde vergelijking waar is. We kunnen ook het omgekeerde doen en kijken of een bepaalde vergelijking niet waar is:

4. Statements 13 2. $x = 4; 3. if(!($x > 5)) 4. { 5. echo $x.' is niet groter dan 5'; 6. } 7. else 8. { 9. echo $x.' is groter dan 5'; 10. } 11.?> 4 is niet groter dan 5 Nu zien we dat het if statement een waarheid oplevert en dus uitgevoerd wordt. Het! in het ifstatement betekent dus eigenlijk: 'Als de volgende vergelijking niet waar is...'. Overigens zul je dit voorbeeldje niet vaak gebruiken om te controleren of iets niet groter is dan 5. Je zult dan meestal namelijk controleren of iets kleiner dan of gelijk aan 5 is: 2. if($x <= 5) 3. { 4. echo $x.' is niet groter dan 5'; 5. } 6.?> Een overzicht met alle soorten operators is te vinden op php.net 1. Switch statement Als je een hele lange lijst met elseif statements krijgt, zou je die kunnen vervangen door een alternatieve constructie. Met een zogenaamd switch statement kun je een hele reeks voorwaarden loslaten op een bepaalde variabele. Dat ziet er bijvoorbeeld zo uit: 2. $x = 1; 3. 4. switch($x) 5. { 6. case 0 : 7. echo '$x is gelijk aan 0'; 8. break; 9. case 1 : 10. echo '$x is gelijk aan 1'; 11. break; 12. case 2 : 13. echo '$x is gelijk aan 2'; 14. break; 15. default : 16. echo '$x voldoet niet aan een van de genoemde voorwaarden'; 17. } 18.?> $x is gelijk aan 1 Met een switch statement kun je dus controleren welke waarde een variabele heeft. Je kunt net zoveel cases aanmaken als je wilt. Hierin controleer je of de variabele aan een bepaalde waarde voldoet. Achter de dubbele punt zet je vervolgens de code die je uit wilt voeren als de variabele aan 1 Zie http://www.php.net/operators onder comparison operators

14 PHP Beginnershandleiding de waarde in de case voldoet. Tenslotte sluit je de case af met een break. Gebruikelijk is het om ook een default actie mee te geven aan het switch statement, welke uitgevoerd wordt als de variabele aan geen van de cases voldoet. Ingewikkeldere statements zijn echter ook mogelijk in een switch: 2. $x = 10; 3. 4. switch($x) 5. { 6. case $x > 10 : 7. echo '$x is groter dan 10'; 8. break; 9. case $x == 10 : 10. echo '$x is gelijk aan 10'; 11. break; 12. case $x < 10 : 13. echo '$x is kleiner dan 10'; 14. break; 15. default : 16. echo '$x voldoet niet aan een van de genoemde voorwaarden'; 17. } 18.?> $x is gelijk aan 10 Op deze manier kunnen we een switch statement zo ingewikkeld maken als we maar willen. De keuze voor het gebruik van een switch statement hangt in de meeste gevallen af van de lengte van de if/else constructie en de hoeveelheid code die per statement uitgevoerd wordt. Bij veel statements en weinig code per statement, is een switch makkelijk. Maar naarmate de hoeveelheid code toeneemt, is het waarschijnlijk weer overzichtelijker om toch met een if/else constructie te werken. Tenslotte ben je met een if/else constructie een stuk flexibeler.

5. Loops 15 5. Loops Een andere constructie waarbij het dynamische aspect van PHP naar voren komt, is de loop. Dit is een constructie waarbij een bepaald stuk code herhaaldelijk uitgevoerd wordt tot aan een bepaald statement wordt voldaan. Er zijn verschillende soorten loops die we kunnen gebruiken. Ik zal de twee die het meest gebruikt worden, de while loop en de for loop, hier bespreken. While De syntax van de while loop ziet er als volgt uit: 2. while( statement ) 3. { 4. // Doe iets 5. } 6.?> Zolang aan statement voldaan wordt, zal de code in de loop, die wederom tussen accolades {} staat, telkens opnieuw uitgevoerd worden. Vaak wordt een while loop in combinatie met een tellertje gebruikt, bijvoorbeeld om de getallen 1 10 weer te geven: 2. $i = 1; 3. while($i <= 10) 4. { 5. echo $i.' '; 6. $i++; 7. } 8.?> 1 2 3 4 5 6 7 8 9 10 De vertaling van dit stukje code is als volgt: 'Zolang $i kleiner dan of gelijk aan 10 is, echo $i en verhoog de waarde van $i met 1'. De uitdrukking $i++ zorgt er dus voor dat de waarde van $i met 1 opgehoogd wordt. Merk op de variabele $i al aangemaakt moet zijn voordat de while loop begint, anders zal PHP het niet slikken. Later in deze handleiding zullen we uitgebreidere constructies met while loops zien. For Een tweede soort loop is de for loop. Hoewel deze eigenlijk precies hetzelfde doet, is de syntax iets anders: 2. for( beginconditie ; statement ; increment ) 3. { 4. // Doe iets 5. } 6.?> In de beginconditie stel je de beginwaarden voor de loop in. Dit zou bijvoorbeeld het declareren van de variabele $i kunnen zijn, zoals we dat ook voor de while loop deden. Het statement is hetzelfde als bij de while loop en het increment gedeelte bepaalt wat er na elke loop met de variabelen uit de beginconditie gebeurt. Ook nu is het weer mogelijk om de getallen 1 10 te genereren:

16 PHP Beginnershandleiding 2. for($i = 1; $i <= 10; $i++) 3. { 4. echo $i.' '; 5. } 6.?> 1 2 3 4 5 6 7 8 9 10 Deze constructie zou dezelfde vertaling hebben als het voorbeeld hiervoor, alleen zitten de verschillende onderdelen op een andere plaats. Zo vormt $i = 1 de beginconditie, is het statement hetzelfde als in de while loop en vormt $i++ het increment gedeelte.

6. Arrays 17 6. Arrays Een type variabele dat we nog niet behandeld hebben zijn de arrays. Een array is een datastructuur waarin een reeks gegevens opgeslagen is. Je kunt het zien als een variabele die meerdere waarden bevat. Een array bestaat uit één of meerdere rijen (entries) die allemaal een eigen sleutel, een indentificatie middel, en een waarde hebben. Als je bij het declareren van een array geen sleutel meegeeft aan de waarden, genereert PHP er zelf een. De eerste sleutel is dan 0, de tweede 1, enzovoort. Het aanmaken van een array Het declareren van een array gaat bijna hetzelfde als het declareren van een variabele. Alleen geven we nu de variabele niet een normale waarde zoals een string of integer, maar kennen we een array als waarde toe. 2. $afruit = array('appel', 'peer', 'banaan', 'kiwi'); 3.?> De array $afruit (denk weer even aan de naamgeving van variabelen) bevat nu verschillende items. Om te zien hoe deze array eruit ziet, kunnen we de volgende code gebruiken: 2. $afruit = array('appel', 'peer', 'banaan', 'kiwi'); 3. echo '<pre>'.print_r($afruit, true).'</pre>'; 4.?> Array ( [0] => appel [1] => peer [2] => banaan [3] => kiwi ) Die print_r() is een functie om de inhoud van een array weer te geven. Later in deze handleiding zullen we dat nog terugzien, voor nu gebruiken we het gewoon. We zien nu hoe de array $afruit opgebouwd is. Tussen de blokhaken [] staat de sleutel en achter de => de waarde. Omdat wij bij het declareren geen sleutels opgegeven hebben, heeft PHP die zelf aangemaakt. Merk op dat de eerste sleutel van de array 0 is en niet 1 zoals je misschien zou verwachten. Associatieve arrays Een associatieve array is een array waarbij de sleutels strings zijn. Dit in tegenstelling tot de numerieke array waarbij de sleutels integers zijn. Als we een associatieve array aan willen maken, kunnen we dat op de volgende manier doen:

18 PHP Beginnershandleiding 2. $afruitaantallen = array ( 3. 'appel' => 10, 4. 'peer' => 0, 5. 'banaan' => 4, 6. 'kiwi' => 12 ); 7. 8. echo '<pre>'.print_r($afruitaantallen, true).'</pre>'; 9.?> Array ( [appel] => 10 [peer] => 0 [banaan] => 4 [kiwi] => 12 ) De array $afruitaantallen heeft een iets andere indeling. De sleutels zijn nu de fruitsoorten en de bijbehorende waarden geven de aantal van iedere soort. Hoe we deze array op een nette manier kunnen uitlezen, zal ik zodadelijk laten zien. Uitlezen van waarden uit een array Om een enkele waarde uit een array uit te lezen, nemen we de variabelenaam van de array en plaatsen we de gewenste sleutel in blokhaken erachter: 2. $afruit = array('appel', 'peer', 'banaan', 'kiwi'); 3. echo 'Een '.$afruit[0].' is lekker, een '.$afruit[3].' wat minder.'; 4.?> Een appel is lekker, een kiwi wat minder. De associatieve array kunnen we op precies dezelfde manier uitlezen: 2. $afruitaantallen = array ( 3. 'appel' => 10, 4. 'peer' => 0, 5. 'banaan' => 4, 6. 'kiwi' => 12 ); 7. 8. echo 'Ik heb '.$afruitaantallen['appel'].' appels en '.$afruitaantallen['banaan'].' bananen.'; 9.?> Ik heb 10 appels en 4 bananen. In dit geval moeten we de sleutel wel tussen enkele quotes plaatsen aangezien we met een string te maken hebben. En zoals we weten moeten we strings altijd tussen enkele quotes plaatsen. Foreach loop Een andere manier van het uitlezen van een complete array, is het gebruik van een foreach loop. Met deze loop lopen we door alle entries in een array en kunnen we ze weergeven. De syntax van een foreach loop is als volgt:

6. Arrays 19 2. foreach($aarray as $skey => $svalue) 3. { 4. // Doe iets met $skey en/of $svalue 5. } 6.?> In deze syntax is $aarray vanzelfsprekend de uit te lezen array. De variabele $skey is de sleutel van de huidige entry en $svalue de bijbehorende waarde. Het opvragen van $skey is overigens optioneel, als je dit gedeelte weglaat wordt alleen de waarde in $svalue geladen. Laten we de inhoud van de array $afruit eens op het scherm zetten: 2. $afruit = array('appel', 'peer', 'banaan', 'kiwi'); 3. 4. echo '<b>fruitsoorten:</b><br />'; 5. foreach($afruit as $sfruit) 6. { 7. echo $sfruit.'<br />'; 8. } 9.?> Fruitsoorten: appel peer banaan kiwi Je ziet dat ik hier de variabele $skey in de foreach loop niet gebruikt hebben. De sleutels van deze array zijn niet interessant, dus hoef ik ze ook niet weer te geven. Dat is echter anders bij onze associatieve array: 2. $afruitaantallen = array ( 3. 'appel' => 10, 4. 'peer' => 0, 5. 'banaan' => 4, 6. 'kiwi' => 12 ); 7. 8. echo '<b>fruit en aantallen:</b><br />'; 9. foreach($afruitaantallen as $sfruit => $iaantal) 10. { 11. echo $sfruit.': '.$iaantal.'<br />'; 12. } 13.?> Fruit en aantallen: appel: 10 peer: 0 banaan: 4 kiwi: 12 Met deze foreach loop hebben we de sleutel van elke entry geladen in de variabele $sfruit en het aantal in $iaantal (what's in the name). Vervolgens kunnen we deze gegevens met een eenvoudige echo op het scherm zetten.

20 PHP Beginnershandleiding Het toevoegen van waarden aan een array Nu we gezien hebben hoe we een array aan kunnen maken en de waarden kunnen uitlezen, kunnen we kijken naar het toevoegen van waarden aan een array. Hiervoor zijn een aantal verschillende manieren. De eerste manier is door het gebruik van blokhaken zonder inhoud achter de variabelenaam: 2. $afruit = array(); 3. $afruit[] = 'appel'; 4. $afruit[] = 'peer'; 5. 6. echo '<pre>'.print_r($afruit, true).'</pre>'; 7.?> Array ( [0] => appel [1] => peer ) We beginnen met het aanmaken van een lege array $afruit. Vervolgens voegen we daar op bovenstaande manier twee nieuwe waarden aan toe. Omdat we geen sleutel meegeven zal PHP zelf sleutels toekennen. Een andere manier is door het gebruik van de functie array_push(). Over functies komen we later nog te spreken, dus neem dit voorbeeld gewoon voor lief: 2. $afruit = array(); 3. $afruit[] = 'appel'; 4. $afruit[] = 'peer'; 5. array_push($afruit, 'banaan', 'kiwi'); 6. 7. echo '<pre>'.print_r($afruit, true).'</pre>'; 8.?> Array ( [0] => appel [1] => peer [2] => banaan [3] => kiwi ) Met deze functie is het dus mogelijk om meerdere variabelen in een keer aan de array toe te voegen. De keuze tussen deze twee methoden is dan ook puur afhankelijk van de situatie. De eerste methode krijgt echter de voorkeur bij associatieve arrays zoals we nu zullen zien. Associatieve arrays In het geval van een associatieve array, zullen wederom zelf onze sleutels moeten definiëren. Waarden toevoegen aan een associatieve array lukt dan ook alleen op de manier met blokhaken: