Inhoud De basis.................................................................................................. 3 Inleiding op PHP .................................................................................. 3 Voorkennis voor PHP ........................................................................ 3 Kenmerken van PHP.......................................................................... 3 Een PHP bestand............................................................................... 4 MySQL .............................................................................................. 4 PHP en MySQL samen ....................................................................... 4 Waarom PHP?.................................................................................... 4 De eerste stappen................................................................................ 6 PHP installatie...................................................................................... 6 PHP downloaden............................................................................... 6 Een MySQL database downloaden ..................................................... 6 Een Apache web-server downloaden ................................................ 6 XAMPP en MAMP, een simpele stand-alone oplossing....................... 7 PHP syntaxis ........................................................................................ 8 Commentaren in PHP........................................................................ 9 XML-proof maken van HTML-tags ................................................... 9 PHP variabelen ...................................................................................... 10 Type variabelen .............................................................................. 10 PHP is een losse taal ....................................................................... 11 Benaming regels............................................................................. 11 Een PHP string ................................................................................... 12 Aan een schakeling van strings....................................................... 13 De strlen () functie.......................................................................... 13 De strpos () functie......................................................................... 14 Meer PHP string bewerkingen ......................................................... 14 PHP Operatoren ................................................................................. 15 PHP if…else statements .................................................................. 17 Voorwaardelijke statements............................................................ 17 If…else statement........................................................................... 17 Het elseif statement ....................................................................... 19 Het switch statement ......................................................................... 20 PHP arrays ......................................................................................... 22 Numerieke arrays ........................................................................... 23 Associatieve arrays ......................................................................... 24 Multidimensionale arrays................................................................ 25 Arrays die veel gebruikt worden ..................................................... 26 PHP looping (lus) ............................................................................... 27 Het while statement........................................................................ 27 do…while statement....................................................................... 28 Het for statement ........................................................................... 29 Het foreach statement .................................................................... 31 kerssies64.net
1
PHP functies ...................................................................................... 32 Het gebruik van PHP functies.......................................................... 33 PHP functies met toegevoegde parameters ..................................... 34 PHP functies en het terugsturen van waarden ................................. 36 PHP formulieren en gebruikersinvoer ................................................. 37 Controleren van gegevens in een formulier..................................... 38 PHP $_GET...................................................................................... 39 Waarom gebruik $_GET? ................................................................. 40 PHP $_POST .................................................................................... 40 Waarom $_POST gebruiken? ........................................................... 41 De variabele $_REQUEST ................................................................. 41 Sessies met input tussen meerdere pages.......................................... 42 Toepassingen van PHP .......................................................................... 44 Toepassing 1 – Berekeningen uitvoeren ............................................. 44 Toepassing 2 - Karatkters tellen........................................................ 46 Toepassing 3 - Begroeting ................................................................ 46 Toepassing 4 – Metodes voor tabellen ............................................... 47 Toepassing 5 – Calculator eenvoudig................................................. 48 Toepassing 6 – Calculator uitbreiding ................................................ 49 Toepassing 7 – Tafels (tekst) ............................................................. 50 Toepassing 8 – Login (simpel)............................................................ 51 Toepassing 9 – Tabel vullen............................................................... 53 Toepassing 10 – Leeftijds-check om een site te bekijken................... 54 Toepassing 11 – Bestemming gebouwverdieping (elseif en switch) ... 56 Bijlagen ................................................................................................ 59 Bijlagen1: Categorieën voor meer PHP -functies ................................ 59
kerssies64.net
2
De basis Inleiding op PHP Een PHP file kan tekst, html-tags en scripts bevatten. De scripts in een PHP file worden uitgevoerd op de server. PHP staat tegenwoordig voor: "PHP: Hypertext Preprocessor" Andre vergelijkbare server-side programmer talen zijn: Perl, Ruby, Microsoft ASP.NET en Phython.
Voorkennis voor PHP Ervaring hebben met inzicht in het volgende moeten hebben: • HTML (en of XHTM) • Enige scripting kennis maakt het leren van PHP makkelijker.
Kenmerken van PHP PHP is een scripting taal De scripts worden aan de server-zijde uitgevoerd De scripts worden uitgevoerd op de server Veel databases zijn ondersteund (MySQL, Informix, Oracle, Sybase, Vast lichaam, PostgreSQL, Generische ODBC, enz.) • Open bronsoftware (OSS) • Het werkt op Windows, Apple, Linux/Unix • Het gratis te downloaden en te gebruiken • • • •
kerssies64.net
3
Een PHP bestand • PHP de files kunnen tekst, de html-tags van HTML en scripts bevatten • PHP files worden op de browser weergegeven als HTML • PHP files hebben een extentie van „.php“,“ .php3 ", of „.phtml“ • Sla de php-bestanden op in UTF-8 (8-bit Unicode Transformation Format)
MySQL • • • • •
Het is een database-server Handig voor kleine en grote applicaties standaardSQL wordt ondersteund Werkt op een groot aantal een aantal operating-systemen Gratis te downloaden en te gebruiken
PHP en MySQL samen • Wanneer PHP en MySQL worden vaak gecombineerd in een dwars-platform (het betekent dat het op een Mac ontwikkeld kan worden en op een Windows-platform zijn diensten kan doen)
Waarom PHP? • Het draait op verschillende operating-systemen (Windows, Mac OS, Linux, Unix, enz.) • Het is compatibel met bijna alle veel gebruikte servers (Apache, IIS, enz.) • GRATIS om te downloaden en gebruik te maken van andere officiële PHP resources: www.php.net • PHP is gemakkelijk te leren en loopt efficiënt aan de serverkant
kerssies64.net
4
Wat gebeurt er als je een php-webpagina opvraagt:
client
1. Aan de client zijde wordt een verzoek gedaan naar een (php)webpagina op een bepaalde webserver, bijvoorbeeld: www.kerssies64.net/index.php
2. De webserver zoekt deze pagina op in z’n filesysteem.
webserver
.php 6. De ontvangen code wordt ontvangen door de client. In de browser wordt deze omgezet in een leesbare pagina
5. Het resultaat van de phpmodule wordt samengevoegd met eventueel aanwezige html-code. Deze code wordt door de webserver verstuurd naar de client
4. De phpmodule voert het phpscript uit en geeft het resultaat terug aan de webserver
3. Omdat het een .php pagina is, stuurt de webserver deze pagina naar de php-module. Deze module moet op de webserver zijn geïnstalleerd
module php-module
kerssies64.net
5
De eerste stappen • Installeer een server Apache op Windows, Mac OS of machine Linux • Installeer PHP op Windows, Mac OS of machine Linux • Installeer MySQL op Windows, Mac OS of machine Linux • De eenvoudigste oplossing is om: door MAMP of XAMPP te installeren.
PHP installatie Als een server PHP zijn er geen extra hulpmiddelen nodig om dit te installeren. Maak gewoon enkele .php files in uw Web-directory (publieke web-map) en de server zal het uitvoeren. De meeste webservers ondersteunen PHP. Als een server geen PHP ondersteunt, dan moet PHP nog geïnstalleerd worden. Raadpleeg zonodig een handleiding: http://www.php.net/manual/en/install.php
PHP downloaden PHP gratis downloaden kan hier: http://www.php.net/downloads.php
Een MySQL database downloaden MySQL gratis downloaden kan hier: http://www.mysql.com/downloads/index.html
Een Apache web-‐server downloaden Apache gratis downloaden kan hier: http://httpd.apache.org/download.cgi
kerssies64.net
6
XAMPP en MAMP, een simpele stand-‐alone oplossing Bij een stand-alone test omgeving is het makkelijer om gebruik te maken van pakket dat Apache, MySQL en PHP in één keer installeert en configureet. Voor willekeurige OS-en (Mac, Linux, Windows en Solaris is XAMPP een oplossing. De publicatiemap heet “htdocs”. http://apachefriends.org
Ook USB-webserver is een goed alternatief voor Windows gebruikers(let op: de publicatiemap heet: “Root” en standaard wordt poort 8080 gebruikt ipv 80) Voor Mac gebruikers is MAMP ook een zeer goed alternatief. http://www.mamp.info
kerssies64.net
7
PHP syntaxis Een PHP scripting blok kan overal in het bestand (html-bestand) worden geplaatst. Op een servers die scripting ondersteund begint het blok met beginnen en eind met ?>. Het advies is wel om ‘php’ toe te voegen om als standaardvorm bij PHP-scripting. Zie voorbeeld: Een PHP-file bevat de normale html-tags zoals in een HTMLbestand en één of meerdere PHP-scripting code. Hieronder, staat een voorbeeld van een eenvoudig PHP script dat de tekst “Welkom bij kerssies64.net“ naar browser verzendt: Elke codelijn in PHP moet met een puntkomma worden geeindigd. De puntkomma is een separator en wordt gebruikt om één reeks instructies van de andere te onderscheiden. Er zijn twee basisstatements om tekst met PHP weer te geven: echo en print. In het voorbeeld hierboven is de echoverklaring gebruikt en geeft “Welkom bij kerssies64.net “ weer op het scherm. Wanneer er vreemde tekens in de tekst staan zoals: $, <, >, !, ?, * en “ , dan zal de tekst tussen ‘ (enkele quotes) gezet worden. Dit heet ‘escapen’. Er wordt ‘ontsnapt aan specialetekens beperkingen. kerssies64.net
8
Tip: Letop bij het knippen en plakken van code. De dubbele quotes zijn niet de zelfde als de “ (shift + ‘ ) op het keyboard. Vervang ze! Tip: Het bestand moet de .php extentie hebben. In bestand met de .html extentie, zal de PHP-code niet uitgevoerd worden.
Commentaren in PHP In PHP, wordt // gebruikt om één lijn commentaar toe te voegen of begin het commentaar met /* en eindig met */ om een aantal regels commentaar te maken.
XML-‐proof maken van HTML-‐tags Veel html-tags worden geopend en ook weer gesloten, zoals ... , zo genoemde container-tags. Maar er zijn ook ‘niet container-tags zoals break; , en . Een voorbeeld om deze compatible te maken voor XML (dataopmaak) is: Doe dit met alle ‘niet container-tags’. kerssies64.net
9
PHP variabelen De variabelen worden gebruikt voor het opslaan van waarden, zoals getallen, strings (tekst) of functieresultaten, zodat script-delen vaker gebruikt kunnen worden. Wanneer een variabele wordt gemaakt kan het steeds opnieuw in uw script worden hergebruikt. Alle variabelen in PHP beginnen met een symbool van het $teken. De correcte manier om een variabele in PHP te plaatsen: $variabele_naam = waarde; Een variabele maken van een string en een variabele met een aantal:
Type variabelen Integer Double Char Boolean Arrays String
kerssies64.net
Een geheel getal Een gebroken getal, ook wel reëel getal genoemd Eén enkel karakter Een variabele die alleen de waarde WAAR of NIET WAAR kan hebben Reeksen variabelen van hetzelfde type Tekst tussen dubbele quotes
10
PHP is een losse taal In PHP hoeven variabelen niet worden verklaard voordat ze wordt geplaatst en toegepast. In het voorbeeld hierboven, zijn de variabelen in PHP noet verklaard voordat er gegevens inde variabele worden geplaatst. PHP zet automatisch de variabele in het correcte gegevenstype (string, getal, datum, etc) om, afhankelijk van hoe ze worden geplaatst.
Benaming regels • De naam van een variabele moet met een letter of een underscore “ _“ beginnen. • De naam van een variabele kan aleen alfanumerieke karakters bevatten en een underscore (a-Z, 0-9, en _) • De naam van een variablele mag geen spaties hebben. Als een variablele naam meer dan één woord bevat, dan moet dit met een underscore worden opgelost (bijv: $my_string), of door hoofdletter gebruik toe te passen (bijv: $myString).
kerssies64.net
11
Een PHP string De namen van variabelen moeten eerst worden geschreven, daarna pas de string met de gewenste tekst. Er zijn allerlei mogelijkheden om strings te manipuleren, zie hiervoor ander (online)handleidingen Na het maken van een string kan deze worden gemanipuleerd. Een string kan direct in een functie worden gebruikt of het kan in een variabele worden opgeslagen. Hieronder, wordt in een PHP-script de string “ Welkom bij kerssies64.net “ aan een variablele ($txt) toegevoegd en direct weer opgeroepen: De output van de code zal hierboven zijn: Welkom bij kerssies64.net
kerssies64.net
12
Aan een schakeling van strings Er is slechts één string operator in PHP. Om twee variabelen aaneen te schakelen, wordt de punt (.) gebruikt als exploitant: Op het scherm wordt als uitkomst weergegeven: Welkom bij kerssies64.net 1234 In de code hierboven is de aan een schakelingsoperators twee keer gebruikt. Dit is omdat er een derde string is opnemen. Namelijk een string met één enkele spatie, om de twee variabelen te scheiden.
De strlen () functie Strlen () functie wordt gebruikt om de lengte van een string te vinden. Vind de lengte van ons string “Welkom bij kerssies64.net “: Op het scherm wordt als uitkomst weergegeven: 25 De lengte van een string wordt vaak gebruikt in loops of andere functies, wanneer het belangrijk is wanneer de lengte van een string eindigt. (d.w.z. in een loop, waarbij de loop na het laatste karakter in het string moet stoppen) kerssies64.net
13
De strpos () functie De strpos () functie wordt gebruikt om de begin positie van een string of karakter binnen een string te bepalen. Als een gelijke in het string wordt gevonden, zal deze functie de positie van de eerste gelijke terugkeren. Als geen enkele overeenkomst wordt gevonden zal het FALSE worden gegeven. In de string wordt “64” gezocht in een string: Op het scherm wordt als uitkomst weergegeven: 19 Het resultaat is positie 19, dit komt doordat positie van de eerste letter in de string 0 is en niet 1.
Meer PHP string bewerkingen Meer string bewerkingen zijn te vinden in andere (online)handleidingen.
kerssies64.net
14
PHP Operatoren De operatoren worden gebruikt om op waarden te werken. Deze sectie geeft een lijst van de verschillende operatoren die in PHP worden gebruikt. Rekenkundige Operatoren Operator Beschrijving + Optellen
PHP if…else statements Het if, elseif en else statements wordt in PHP gebruikt om verschillende acties uit te voeren die op voorwaarden zijn gebaseerd.
Voorwaardelijke statements De volgende voorwaardelijke statements worden vaak in code gebruikt: • if…else statement - gebruik dit statement als een reeks van code uitvoert moet worden op basis van één voorwaarde wanneer de uitkomst ‘waar’ of ‘niet waar’ is. • elseif statement - wordt gebruikt met het if… else statement om een reeks van code als één of meerdere verscheidene condities waar zijn.
If…else statement Voor het uitvoeren van code blok die aan een voorwaarde true is en een ander code blok wanneer de voorwaarde false is. Syntaxis if (conditie) uit te voeren code als de voorwaarde true is; else uit te voeren code als de voorwaarde false is;
kerssies64.net
17
Voorbeeld Het volgende voorbeeld geeft als resultaat “een prettig weekend!” als de huidige dag een Vrijdag is, anders zal het resultaat “een prettige dag hebben! “: Als er meer dan meer dan één regel moeten worden uitgevoerd bij een voorwaarde, dan moeten de regels binnen haken {} worden geplaatst: “; echo “een prettig weekend. “; echo “het is maandag. “; } ?> Meer datum en tijd operators zijn op andere (online)handleidingen te vinden. kerssies64.net
18
Het elseif statement Voor het uitvoeren van code waarbij één van meerdere voorwaarden waar zijn wordt het elseif statement gebruikt. Syntaxis if (conditie) uit te voeren code als de voorwaarde true is; elseif (conditie) uit te voeren code als de voorwaarde true is; else uit te voeren code als de voorwaarde false is; Voorbeeld Het volgende voorbeeld geeft als resultaat “een prettig weekend!” als de huidige dag een Vrijdag is. Het resultaat is “een prettige zondag!” als de huidige dag Zondag is. Anders zal het resultaat “een prettige dag! “ zijn: Tip: If-statements kunnen worden genest. Hierbij zijn verschillende ifstatements in elkaar gebruikt.
kerssies64.net
19
Het switch statement Het Switch statement wordt als schakelaar in PHP gebruikt om één keuze te maken uit verscheidene opties op basis van een voorwaarde. Het bij behorende codeblok wordt uitgevoerd. Het switch-statement wordt gebruikt om lange blokken van if.elseif.else code te voorkomen. Syntaxis switch (expressie) { case label1: uit te voeren code als expressie = label1; break; case label2: uit te voeren code als expressie = label2; break; default: uit te voeren code als de expressie anders is dan label1 en label2 beide; }
kerssies64.net
20
Voorbeeld Zo werkt het: • Één enkele expressie (vaak een variabele) wordt eerst bekeken. • De waarde van de expressie wordt vergeleken met de waarden voor elke casel in de structuur. • Als er een overeenkomst is, wordt de bij behorende code uitgevoerd. • Nadat een code is uitgevoerd, wordt de break gebruikt om de code te stoppen. • De default -statement wordt gebruikt als geen van de expressies true is.
kerssies64.net
21
PHP arrays Een array kan één of meerdere waarden in één enkele variabele opslaan. Bij het werken met PHP, zullen veel gelijkaardige variabelen aanmaken. In plaats van veel gelijke variabelen aan te maken, kan er ook een serie elementen worden opgeslagen. Elk element in de serie heeft zijn eigen ID zodat het gemakkelijk kan worden opgevraagd. Er is verschillend soort drie arrays: • Numerieke array - een array met een numerieke sleutel als ID. • Associatieve array - een array waar elke sleutel van ID met een waarde wordt geassocieerd. • Multidimensionale array - een array die één of meerdere arrays bevat.
kerssies64.net
22
Numerieke arrays Een numerieke serie slaat elk element met een numerieke ID-sleutel op. Er zijn verschillende manieren om een numerieke serie te gebruiken. Voorbeeld 1 In dit voorbeeld wordt de ID-sleutel automatisch toegewezen: $namen = array (“Piet”, “Sara”, “Joran”); Voorbeeld 2 In dit voorbeeld wordt de ID-sleutel toegewezen: $namen [0] = “Piet”; $namen [1] = “Sara”; $namen [2] = “Joran”; De ID-sleutels kunnen in een script worden gebruikt: De code zal hierboven output: Sara en Joran zijn Piet’s buren
kerssies64.net
23
Associatieve arrays Een associatieve array, wordt elke ID-sleutel geassocieërd met een waarde. Wanneer er vaste gegevens worden opgeslagen, dan is een numerieke array niet altijd de beste optie. Met associatieve arrays kunnen waarden gebruikt worden als sleutels, waaraan waarden toewijzen worden. Voorbeeld 1 In dit voorbeeld is een array met leeftijden aan de verschillende personen toegewijzen: $leeftijd = array (“Piet " =>32, “Sara " =>30, “Joran " =>34); Voorbeeld 2 Dit voorbeeld is het zelfde als voorbeeld 1, maar toont een verschillende manier om de serie tot stand te brengen: $leeftijd [‘Piet’] = “32” $leeftijd [‘Sara’] = “30”; $leeftijd [‘Joran’] = “34”; De sleutels van identiteitskaart kunnen in een script worden gebruikt: De code zal hierboven output: Piet is 32 jaar oud.
kerssies64.net
24
Multidimensionale arrays In een multidimensionele array, kan elk element in de array ook zelf weer een array zijn. En elk element in de sub-array kan ook weer een array zijn, etc. Voorbeeld In dit voorbeeld wordt een multidimensionale serie, met de automatisch toegewezen sleutels van identiteitskaart: $families = array ( “Klaassen” =>array ( “Piet”, “Achmed”, “Arline” ), “Zwart” =>array ( “Bart” ), “Haaks" =>array ( “Henk”, “Lotte”, “Joost” ) );
kerssies64.net
25
De array hierboven, wordt met een echo als volgt weergegeven: Array ( [Klaassen] =>array ( [0] => Piet [1] => Achmed [2] => Arline ) [Zwart] => array ( [0] => Bart ) [Haaks] => array ( [0] => Henk [1] => Lotte [2] => Joost ) ) Dit is vrij leesbaarder... Voorbeeld 2 Laat poging hierboven tonend één enkele waarde van de serie: echo “Is”. $families [“Klaassen”] [2]. “ een lid van de familie van de Klaassen? “; De code zal hierboven als resultaat geven: Is Arline een lid van de familie van de Klaasen?
Arrays die veel gebruikt worden $_POST, $_GET en $_SESSION zijn ook arrays die gebruikt worden om gegevens van de ene php-page over te sturen naar de andere.
kerssies64.net
26
PHP looping (lus) De code van een loop (lus) wordt gebruikt om het zelfde blok code meerdere malen uit te voeren. Dit kan door een loop statements in de code op te nemen. In PHP hebben wij de volgende het van een lus voorzien statements: • while - loops door een code blok totdat een gespecificeerde voorwaarde true is geworden • do … while - loops doorlopen een code blok zolang een speciale voorwaarde true is. • for - loops doorloopt een code blok een specifiek aantal malen. • foreach - loops doorlopen een code blok voor elk element in een array
Het while statement Het While statement zal een code blok uitvoeren als/zolang een voorwaarde true is. Syntaxis while (conditie) uit te voeren code;
kerssies64.net
27
Voorbeeld Het volgende voorbeeld geeft een loop die zal blijven lopen zolang veranderlijke 1 minder dan is, of gelijke aan 5. De waarde ‘i’ wordt elke loop 1 opgehoogd: “; $i++; } ?>
do…while statement Het do…while statement voert een code blok minimaal 1x uit en zal dit herhalen zolang een voorwaarde true is. Syntaxis do { uit te voeren code; } while (conditie);
kerssies64.net
28
Voorbeeld Het volgende voorbeeld zal de waarde van ‘I’ minstens een maal verhoogd worden en het zal ‘I’ blijven verhogend zolang de waarde minder dan 5 is: “; } while ($i<5); ?>
Het for statement Het for statement is het meest geavanceerd loop in PHP. Maar ook de eenvoudigste vorm, want het statement wordt gebruikt wanneer het aantal herhalingen vast ligt. Syntaxis for (init; cond; incr) { uit te voeren code; }
kerssies64.net
29
Parameters: • init: Meestal gebruikt om een teller in te stellen, maar het kan om elke willekeurige code gaan om voordat de loop wordt gestart. • cond: Conditie de wordt bekeken bij elke herhaling van de loop. Als de voorwaarde true geeft, zal de loop verder gaan en de code uitvoeren. Als het een false terug geeft, dan zal de code gestopt worden. • incr: Hoe de teller wordt verhoogt, maar hier kan elk willekeurig code blok worden uitgevoerd. Tip: Elk van de parameters kan leeg zijn of meerdere expressies hebben die door komma's worden gescheiden. • cond: Alle expresasies die door een komma worden gescheiden worden bekeken, maar alleen het laatste resultaat wordt door het laatste deel bepaald. De parameter die leeg zijn moeten voor onbepaalde tijd blijven doorlopen. Dit is nuttig wanneer het gebruiken van een voorwaardelijke onderbrekingsstatement binnen de loop een einde aan de loop maken. Voorbeeld Het volgende voorbeeld print de tekst “Hoe leer ik PHP?” tien maal: “; } ?>
kerssies64.net
30
Het foreach statement Het foreach statement wordt gebruikt bij loop in arrays. Voor elke loop, wordt de waarde van het huidige array -element toegewezen aan $waarde (en de array-pointer wordt één positie verschoven), dus bij de volgende loop is het volgende element te bekijken. Syntaxis foreach (array as waarde) { uit te voeren code; } Voorbeeld Het volgende voorbeeld geeft een loop die de waarden van een bepaalde array zal weergeven: “; } ?>
kerssies64.net
31
PHP functies Een Groot voordeel van PHP is zijn functie mogelijkheden. Er zijn meer dan 700 ingebouwde functies beschikbaar. Enkele hiervan zullen worden uitgelegd. Voor de anderen wordt verwezen naar andere (online)handleidingen. Een functie is een codeblok dat zelf gedefinieerd kan worden en op elk gewenst moment opgeroepen kan worden. • Alle functies beginnen met het woord “function ()” • Geef de functie een begrijpekijke naam. De naam mag beginen met een letter of een underscore (geen getal). • Voeg toe “{“ aan het begin en einde van de functie-code. • Voeg de functie code toe. • Sluit af met een “}” aan het einde van de code. Voorbeeld Een eenvoudige functie die een naam schrijft wanneer deze wordt geroepen:
kerssies64.net
32
Het gebruik van PHP functies Een functie in een PHP script: “; echo “Mijn naam is ”; schrijfMynNaam(); echo “. Dat klopt,”; schrijfMynNaam(); echo “ is mijn naam. “; ?> Op het scherm wordt als uitkomst weergegeven: Hallo allemaal :-) Mijn naam is Jan Achmed de Best. Dat klopt, Jan Achmed de Best is mijn naam.
kerssies64.net
33
PHP functies met toegevoegde parameters De vorige functie schrijfMynNaam() is een zeer eenvoudige functie. Er wordt alleen een statisch string gebruikt. Om meer functionaliteit aan een functie toe te voegen, kunnen er parameters worden toevoegt. Een parameter is niets meer dan een variabele. Tussen de haakjes na de functienaam, zoals bij: schrijfMynNaam (), kunnen parameters worden gespecificeerd. Voorbeeld 1 Het volgende voorbeeld zal verschillende voornamen geven, maar wel dezelfde familienaam weergeven: “; } echo “Mijn naam is ”; schrijfMynNaam(“Jan”); echo “Mijn naam is ”; schrijfMynNaam(“Achmed); echo “Mijn naam is ”; schrijfMynNaam(“Betty”); ?>
kerssies64.net
34
Op het scherm wordt als uitkomst weergegeven: Mijn naam is Jan de Boer. Mijn naam is Achmed de Boer. Mijn naam is Betty de Boer. Voorbeeld 2 De volgende functie heeft twee parameters: “; } echo “Mijn naam is ”; schrijfMynNaam(“Jaap”,”. “); echo “Mijn naam is ”; schrijfMynNaam(“Moktar”,”! “); echo “Mijn naam is ”; schrijfMynNaam(“Desireé”,”… “); ?> Op het scherm wordt als uitkomst weergegeven: Mijn naam is Jaap Bak. Mijn naam is Moktar Bak! Mijn naam is Desireé Bak…
kerssies64.net
35
PHP functies en het terugsturen van waarden De functies kunnen ook worden gebruikt om waarden terug te geven. Voorbeeld Op het scherm wordt als uitkomst weergegeven: 7 + 5 = 12
kerssies64.net
36
PHP formulieren en gebruikersinvoer De PHP variabelen $_GET en $_POST worden gebruikt om informatie uit formulieren (invoer velden) te halen. In feite zijn het arrays met een functie om de informatie naar een ander page door te sturen. Belangrijkste om mee te nemen is dat wanneer er gebruik wordt gemaakt van HTML- en PHP, dat het PHP-script automatisch het resultaat beschikbaar stelt. Een voorbeeld formulier: Het voorbeeld hierboven bevat twee invoervelden en een knop voor verzenden. Wanneer de gebruiker deze vorm invult en op de knop klikt, worden de formuliergegeven verzonden naar het bestand “hallo.php”.
kerssies64.net
37
Het bestand “hallo.php” ziet er zo uit: Welkom . U bent jaar oud. Een steekproefoutput van het bovengenoemde script kan het volgende resultaat geven: Welkom Ronald. U bent 35 jaar oud. De PHP variabelen $_GET en $_POST zullen in de volgende hoofdstukken worden behandeld.
Controleren van gegevens in een formulier Gegevens van de gebruiker moet, mits mogelijk, worden bevestigd (validatie). Aan de cliënt- kant is dit sneller en zal de server ontlasten. Maar als een site genoeg bezoekers trekt is site- beveiliging misschien wel net zo belangrijk. Bij gebruik van een database moet er altijd aan de server- kant bevestiging worden gebruikt. Een goede manier om dit te doen is door het formulier, op een server, naar zichzelf te posten, in plaats van het linken naar een andere pagina. De gebruiker zal dan een foutenmeldingen op de zelfde pagina krijgen. Dit maakt het gemakkelijker om de fout te ontdekken.
kerssies64.net
38
PHP $_GET De variabele $_GET wordt gebruikt om waarden te ontvangen die door een HTML-formulier zijn verzonden met de method=”get”. De variabele $_GET is een array die variabele namen en van waarden die door HTTP-site worden verzonden binnen te halen met de HTML GET methode. De variabele $_GET wordt gebruikt om waarden van een formulier te halen met de method="get". De informatie verzonden door het formulier is voor iedereen zichtbaar (het zal in de browser adresbar worden getoond) en het heeft grenzen op de hoeveelheid informatie (max. 100 karakters). Voorbeeld Wanneer de gebruiker de “submit” knop klikt, kan een URL er als volgt uitzien: http://www.kerssies64.net/contactInfo.php?naam=Jet&Leeftijd=17 Het bestand “contactInfo.php” kan de variabele $_GET gebruiken om de formuliergegevens (de namen van de velden zijn automatisch de ID’s in de $_GET array) op te vragen: Welkom . U bent jaar oud.
kerssies64.net
39
Waarom gebruik $_GET? Wanneer de variabele $_GET wordt gebruikt zijn alle variabele namen zichtbaar in de URL. Deze methode mag dus NIET worden gebruikt om wachtwoorden of andere gevoelige informatie te versturen! Dit, omdat de variabelen in URL worden getoond het is alleen mogelijk om voor deze webpage een bookmark (favoriet) aan te maken. Dit is in sommige gevallen succesvol... Tip: De HTTP GET methode is niet geschikt op grote variabele waarden te versturen; de waarde kan niet meer dan 100 karakters overschrijden.
PHP $_POST De variabele $_POST wordt gebruikt om waarden van een vorm met method= "post" te verzamelen. De variabele $_POST is een array voor variabele namen en getallen die door de POST- methode van HTTP- sites wordt verzonden. De variabele $_POST wordt gebruikt om waarden van een formulier met method= "post" te verzamelen. De informatie die van een formulier met de POST- methode wordt verzonden is onzichtbaar voor anderen en heeft geen grenzen op de hoeveelheid te verzenden informatie. Voorbeeld: " post
kerssies64.net
40
Wanneer de gebruiker de “submit” knop klikt, zal URL geen formuliergegevens zichtbaar zijn. Een URL ziet er dan als volgt uit: http://www.kerssies64.net/index.php Het bestand “index.php” kan met $_POST variabele formuliergegevens ophalen (de namen van de formuliervelden zullen automatisch de ID’s zijn in de $_POST array): Welkom . U bent jaar oud.
Waarom $_POST gebruiken? • De variabelen die met de POST worden verzonden door een HTML- page worden niet getoond in URL • De variabelen hebben geen maximum De URL kan niet aan de favorieten worden toegevoegd (bookmark).
De variabele $_REQUEST De PHP $_REQUEST variabele bevat de inhoud van beide $_GET, $_POST, en $_COOKIE. De PHP $_REQUEST variabele kan worden gebruikt om het resultaat van vormgegevens te krijgen die met zowel GET als POSTmethodes worden verzonden. Voorbeeld Welkom . U bent oude jaren! Naast $_GET, $_POST en $_REQUEST is er ook $_FILE om complete bestanden te ‘posten’. kerssies64.net
41
Sessies met input tussen meerdere pages Bij het opzetten van een site wordt al gauw duidelijk dat ook POST een beperking heeft. Ingevoerde gegevens worden gepost naar één enkele php-page waar ze verder gebruikt worden. Zo kan een gebruiker inloggen, waarbij op basis van het account een specifiek menu zichtbaar wordt. De usernaam en eventueel andere gegevns zullen opgehaal moeten worden en evtueel in de header, menu, main-page en footer gebruikt worden. Get, post en request kunnen dit niet leveren. Hiervoor moet een sessie worden opgestart, waarna de gegevens zelfd na het openen van andere pages weer (her)gebruikt kunnen worden. In de volgende php-page (index.php) worden waarden gepost naar zichzelf en doormiddel van de opgestarte sessie beschikbaar gemaakt in andere webpages: Sessions
Door na het submitten op de link te klikken zal page2.php worden geopend door de link onderaan. De sessie wordt ook hier gestart en daarmee zijn alle waarden in de sessie beschikbaar:
Persoonlijke voorkeuren
'; echo ‘Uw liefelingskleur is: ‘; echo $_SESSION['kleur']; // favoriete kleur echo ' '; echo ‘Uw liefelingsdier is: ‘; echo $_SESSION['dier']; // huisdier echo ' '; // Je kan terug naar de index page of page3.php openen echo '
Door op de link te klikken wordt er een nieuwe php-page geopend waar de sessie weer geopend wordt. En weer zij alle gegevens in de sessie beschikbaar en kunnen opgeroepen worden...
Opvragen sessie-waarden
'; echo ‘De tijd waarop de sessie gestart is: ‘; echo date('Y m d H:i:s', $_SESSION['tijd']); echo ' '; // Terug naar index.php echo '
Toepassingen van PHP Toepassing 1 – Berekeningen uitvoeren Een HTML -formulier met verwijzigen naar een php –page:
Het formulier ziet er zo uit:
kerssies64.net
44
De php -page bevat de volgende GET- codes:
Het eindresultaat is als volgt:
NB: GET kan ook vervangen worden voor POST.
kerssies64.net
45
Toepassing 2 -‐ Karatkters tellen De code telt het aantal karakters in een ingevoerde ‘string’. De php-page in de publicatie folder van de werbserver bevat de volgende code: Tel letters
Toepassing 3 -‐ Begroeting De code geeft verschillende begroetingen. Is het vrijdag, dan wordt “een prettig weekend” gegeven, anders “een prettige dag”. De php-page in de publicatie folder van de werbserver bevat de volgende code: $d=date (“D”); if ($d== " Fri ") echo "een prettig weekend!" ; else echo "een prettige dag!"; ?>
kerssies64.net
46
Toepassing 4 – Metodes voor tabellen De code geeft twee metodes weer om tabellen te maken. De php-page in de publicatie folder van de werbserver bevat de volgende code:
//- een tabel onder 1 echo echo '
Titel 1
Titel 2
Titel 3
a1
a2
a3
b1
b2
b3
'; echo "
"; //- een tabel met meerder echo's //-Kopteksten echo '
'; echo '
Titel 1
Titel 2
Titel 3
'; echo '
'; //- eerste rij met waarden echo '
a1
'; echo '
a2
'; echo '
a3
'; echo '
'; //- tweede rij met waarden echo '
'; echo '
b1
'; echo '
b2
'; echo '
b3
'; echo '
'; echo "
"; ?>
kerssies64.net
47
Toepassing 5 – Calculator eenvoudig De code laat twee ingevoerde waarden optellen. De html-page (genaamd: index.html) in de publicatie folder van de werbserver bevat de volgende code: calculator (1)
De php-page (genaamd: calculator1.php) in de publicatie folder van de werbserver bevat de volgende code: calculator 1 $getal1 + $getal2 = $sum"); echo (" Nieuwe berekening uitvoeren"); ?>
kerssies64.net
48
Toepassing 6 – Calculator uitbreiding De code laat twee ingevoerde waarden optellen of aftrekken. De html-page (genaamd: index.html) in de publicatie folder van de werbserver bevat de volgende code: calculator (2)
De php-page (genaamd: calculator2.php) in de publicatie folder van de werbserver bevat de volgende code: calculator vervolg
Toepassing 7 – Tafels (tekst) De code geeft een tafel naar wens weer. De html-page (genaamd: index.html) in de publicatie folder van de werbserver bevat de volgende code: Tafels mbv een teller
De php-page (genaamd: tafels.php) in de publicatie folder van de werbserver bevat de volgende code: Tafels "); } ?>
kerssies64.net
50
Toepassing 8 – Login (simpel) Met deze code is een simpele inlog actie gemaakt waarbij de usernasme en wachtwoord vastliggen. De html-page (genaamd: index.html) in de publicatie folder van de werbserver bevat de volgende code: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> inloggen.html