Webscripting PCVO Gent & OBAC Willem De Meyer
Situering van de module De module webscripting kan na de cursus webdesign gevolgd worden. Kennis van html is noodzakelijk om op de opbouw van webpagina s te begrijpen Gratis software (open source) Er werd gekozen voor PHP, MySQL en Apache Attest webscripting Willem De Meyer 2
Cursusmateriaal Handboek Website Deluxe met PHP, MySQL en Apache auteur: Jochen Naumann uitgeverij: Pearson Education Benelux ISBN: 90-430-0765-x info: www.pearsoneducation.nl CDrom bij het boek met software en uitgewerkte voorbeelden PDF s Eigen nota s Willem De Meyer 3
Verwachting Dynamische website kunnen bouwen Zelfstandig informatie van het internet halen www.php.net/manual/nl Uitwerken van voorbeelden Geen klassiek examen Eindopdracht is een website tonen Willem De Meyer 4
Cursusinhoud Basis PHP Teller Gastenboek Beveiligd fotoboek Geautomatiseerd antwoordsysteem Enquêtes afnemen en direct verwerken via het web Dynamische grafieken maken Content Management System uitbouwen en beheren Willem De Meyer 5
Wat is een webserver? Informatieleverende computer. Bij internet is een server rechtstreeks met internet verbonden. De andere kant is de gebruiker (client) van de server. Het internet is op dit principe van serverclient gebaseerd. Een webserver zorgt ervoor dat de code op webpagina s correct geparst wordt en omgezet wordt in correcte webpagina s. Deze webserver kan geavanceerde scripts uitvoeren en enkel het resultaat naar de clientpc sturen. Willem De Meyer 6
PHP Pre Hypertext Processor Het is een volwaardige programmeertaal Gericht op dynamische websites Werkt op meerdere platformen Lijkt op C++, Java, Versie 4 Waarom (nog) niet versie 5? Willem De Meyer 7
MySQL Databank Webinterface phpmyadmin Even krachtig al access Iets minder toegankelijk Willem De Meyer 8
Apache Dit is de webserver die we gaan gebruiken Volledig gratis Wordt gebruikt op 75% van alle webservers ter wereld Draait niet samen met IIS Kan je lokaal op je PC installeren Zoek een Linuxhost op het net voor je webpagina s Willem De Meyer 9
Eerst PHPscript <html> <head> <title>hallo wereld!</title> </head> <body> <?php echo "Hallo buitenwereld"?> </body> </html> Willem De Meyer 10
Uitvoeren van een PHPscript De phpcode zit verweven in de htmlcode en begint steeds met <?php en eindigt met?> Er zijn andere mogelijkheden maar die gebruik je best niet Sla het script op onder de naam mijnpagina.php Gebruik ALTIJD kleine letters voor bestandsnamen en voor de extensie Gebruik nooit spaties of vreemde tekens in je naamgeving Sla het script op onder de naam hallowereld.php in de map C:\apache\htdocs Evenuteel kan je een submap aanmaken, les1, les2, Willem De Meyer 11
Commentaar invoegen <?php /* Hier begint uitvoer op het scherm */ echo "Hallo buitenwereld"?> Of <?php /* Naam: Uitvoerprogramma Versie: 2.1 Auteur: Willem Laatste wijziging: 26/10/2005 */ echo "Hallo buitenwereld"?> Of echo Hallo buitenwereld ; // dit is een uitvoer Willem De Meyer 12
Variabelen Variabelen dienen als plaatsvervanger voor inhoud Een variable kan een stuk woord, getal of een volledige tekst bevatten Elke variable begint in PHP met een dollarteken Geen spaties, rare tekens enz. in de naam van de variabele Vb: $salaris=12000; $actuele_prijs=12.82; $boodschap= Welkom aan de nieuwe cursisten. ; Let op de ; na het declareren (aanmaken) van variabelen Willem De Meyer 13
Formulierverwerking We gebruiken een gewoon htmldocument met een formulier in. We koppelen dit formulier aan een phpbestand dat de invoer verwerkt. <html> <head> <title>formulier</title> </head> <body> <form action="formulierverwerking.php" method="post"> <br>voornaam: <input type="text" name="voornaam"> <br>achternaam: <input type="text" name="achternaam"> <input type="submit"> </form> </body> </html> Willem De Meyer 14
PHPscript dat het form verwerkt <html> <head> <title>formulierverwerking</title> </head> <body> <?php echo "Hallo $voornaam $achternaam! <br>"; if ($voornaam == "") { echo "Fout: geen voornaam ingevoerd.<br>"; } else { echo "Voornaam: $voornaam<br>"; } echo "Achternaam: $achternaam<br>";?> </body> </html> Willem De Meyer 15
Controle structuren : if Indien er aan een bepaalde voorwaarde voldaan is If ($voornaam == ) { uitvoer } Er wordt getest of de ingegeven naam niet leeg is De controle gebeurt door de if en het == Dit == test of de inhoud van de variabele leeg is Meerdere voorwaarden na elkaar mogelijk met else if Willem De Meyer 16
Herhaling met de for-lus Als je op voorhand weet hoeveel keer een bepaalde opdracht moet uitgevoerd worden kan je gebruik maken van een for-lus Deze lus doorloopt een vooraf vastgesteld aantal keer de lus For ($i=0; $i < 5; $i++) { echo Herhaling nummer= $i <br> ; } $i is de variabele die geïnitialiseerd wordt op 0 Zolang $i kleiner is dan 5 loopt de lus Elke keer wordt $i met 1 verhoogt dmv ++ Willem De Meyer 17
While-lus lus De while-lus is vergelijkbaar met de for-lus maar bestaat uitsluitend uit een herhaling Zolang er aan een bepaalde voorwaarde voldaan is (de while) wordt een bepaalde opdracht uitgevoerd <html> <head> <title>forlus</title> </head> <body> <?php for ($i=0; $i < 5; $i++){ echo "Herhaling nummer: $i <br>"; }?> </body> </html> Willem De Meyer 18
Operatoren Wiskundige bewerking +, -, *,/,% Optellen, aftrekken, vermenigvuldigen, delen, rest na deling (modulus) Groter dan >, kleiner dan <, Volgorde van de bewerkingen zoals bij gewoon rekenen Eerst vermenigvuldigen, daarna delen en vervolgens optellen en aftrekken Willem De Meyer 19
Contrele geboortejaar (invoer) <html> <head> <title>controle geboortejaar</title> </head> <body> <form action="controle_jaar.php" method="post"> Uw geboortejaar: <input name="jaar" type="text"> <input type="submit"> </form> </body> </html> Willem De Meyer 20
Controle geboortejaar (verwerking) <html> <head> <title>controle</title> </head> <body> <?php if($jaar < 1860) { echo "Fout: zo oud is niemand!"; } else if($jaar >2005) { echo "Fout: u bent nog niet geboren!"; } else { $leeftijd = 2005 - $jaar; echo "U bent $leeftijd jaar oud. "; }?> </body> </html> Willem De Meyer 21
Functies Functies worden gebruikt voor opdrachten die meer dan 1 keer worden uitgevoerd Een functie moet eerst gedefinieerd worden eer je ze kan aanroepen Voorbeeld van een functie die nadien 5 keer opgeroepen wordt <?php function helloworld() { echo "<p>hello, World! "; } for($i=0; $i < 5; $i++){ helloworld(); }?> Willem De Meyer 22
Complexere functie Omzetting van C naar F function cels_fahr($celcius) { $fahrenheit = ($celcius * 1.8) + 32; return($fahrenheit); De functienaam is cels_fahr De functie moet een waarde meekrijgen als ze wordt aangeroepen Aanroepvoorbeeld: $resultaat = cels_fahr(100); echo 100 graden Celcius is $resultaat graden Fahrenheit ; Willem De Meyer 23
Bestanden koppelen Indien alle functies die je wil gebruiken in een speciaal bestand staan dan kan je dat bestand gewoon aanroepen wanneer nodig Het is wel zo dat de 2 bestanden in dezelfde map moeten staan ofwel moet je werken met een pad <?php /* in celciusfahrenheit zit de functie die we nodig hebben */ require("celciusfahrenheit.php"); echo cels_fahr(100);?> Willem De Meyer 24
Globale en lokale variabelen Een variabele die we gedurende gans ons programma of script nodig hebben declareer je best globaal. Vb: BTW Stel dat de BTW wijzigt dan moet je dat maar op 1 plaats aanpassen In volgend voorbeeld wordt er berekend hoeveel dollar 100 euro waard is Er wordt gebruik gemaakt van een globale variabele waarin de koers zit Willem De Meyer 25
Omzetting van euro naar dollar <html> <head> <title>globale variabele</title> </head> <body> <?php $dollarkoers=1.08; function euro2dollar($euro) { global $dollarkoers; return($euro * $dollarkoers); } echo "100 euro is".euro2dollar(100)." dollar";?> </body> </html> Willem De Meyer 26
Array s Wat is een array? Zowel 1 als 2 dimensionaal Handig om waarden in te stockeren Er zijn veel functies beschikbaar voor arrays Let op! Een array start bij de waarde 0. Vb: de eerste 5 maanden van het jaar $maand[0] = "januari"; $maand[1] = "februari"; $maand[2] = "maart"; $maand[3] = "april"; $maand[4] = "mei"; Willem De Meyer 27
Array s (voorbeeld) <html> <head> <title>array's</title> </head> <body> Met array's kan gegevens doeltreffend gebruiken.<br> Het aantal elementen in deze array is <?php $maand[0] = "januari"; $maand[1] = "februari"; $maand[2] = "maart"; $maand[3] = "april"; $maand[4] = "mei"; $aantal = count($maand); echo $aantal; echo "<br>dit zijn de gegevens uit de array:"; for($j=0; $j < count($maand); $j++){ echo $maand[$j]."<br>"; }?> </body> </html> Willem De Meyer 28
Opdracht Maak een array met de dagen van de week Laat deze onder elkaar op het scherm verschijnen Probeer de code zo compact mogelijk te houden Gebruik een functie om de waarden op het scherm te zetten. Willem De Meyer 29