Dynamische websites met PHP (basis) Karel Nijs 2010/09
Leswijze • Eerst wat theorie • Begeleid met (korte) oefeningen – Editor = UltraEdit – Geen DreamWeaver – Browser = Internet Explorer • Vereiste voorkennis: (X)HTML + JavaScript • Online hulp: http://www.php.net/manual/en/
• Korte pauze rond 20u
PHP basis – overzicht cursus • • • • • • • • • • •
HTML intro Wat is PHP? De installatie van PHP Eerste stappen in PHP Variabelen Arrays Rekenen met PHP Formulieren Lussen Mailen via PHP Teller en gastenboek
PHP basis – les 1 • • • • •
HTML intro Wat is PHP? De installatie van PHP Eerste stappen in PHP Variabelen
HTML intro • Hyper Text Markup Language • Tekstbestand met opmaak tokens (tags) • Tags bepalen weergave pagina
HTML intro • Webpagina – Editeerbaar tekst bestand – Bestandsextentie = .html of .htm – Opbouw: • head: – Bevat “technische” informatie – Niet zichtbaar in browser
• body: – Weergave inhoud
HTML intro • HTML = statische webcontent – De pagina wordt éénmaal opgebouwd – Opgeslagen op de webserver – Elke keer als je iemand hem opvraagt, krijgt hij dezelfde – Beperkte manipulaties met JavaScript – Beperkingen: • Geen gegevens verzamelen mbv. Formulieren • Geen emails versturen
HTML intro • PSPad editor installeren bij je thuis: 1. Ga naar http://www.pspad.com/en/download.php 2. Download de "Installer" naar je bureaublad
3. Voer de installer uit door er op te dubbelklikken 4. Druk telkens op "Volgende"
• PSPad editor starten: 1. Ga naar Start > Programma's > PSPad editor > PSPad editor
HTML intro – syntax high lighting
Browsers • Doel: weergave van inhoud webpagina • Eigenlijk: omzetten van bron naar presentatie • Soorten: – Vele verschillende – Vele scherpe kantjes – Standaarden?!
Browsers • Caching – Lokaal opslaan van pagina’s, figuren, … – Instelbaar in browser
Browsers 1
2
AANvinken
Windows file system 1
2
AFvinken
PHP basis – les 1 • • • • •
HTML intro Wat is PHP? De installatie van PHP Eerste stappen in PHP Variabelen
Wat is PHP? • Wat is PHP? – PHP betekent: “PHP: Hypertext Preprocessor” • Vroeger: “Personal Home Page”
– – – –
Ontstaan in 1994 Voorloper waren CGI scripts PHP is een server-side scripting language, zoals ASP PHP scripts worden uitgevoerd op de server
Wat is PHP? • PHP = dynamische webcontent – De pagina wordt telkens opgebouwd – Opgeslagen op de webserver – Elke keer als je iemand hem opvraagt, kan hij anders zijn – Allerhande manipulaties mogelijk
Wat is PHP?
Wat is PHP? • Wat is PHP? – PHP is open source software – PHP is gratis te downloaden en te gebruiken – PHP is een scripttaal: • • • • •
Schrijf code Plaats code online Roep pagina op Code wordt geïnterpreteerd (<-> gecompileerd) Code geeft output – HTML, tekst, figuur, … alles kan!
Wat is PHP? • Wat is een PHP bestand? – PHP bestanden kunnen tekst, HTML en scripts bevatten – PHP bestanden worden teruggegeven naar de browser als gewone HTML • Opm.: een PHP bestand op een niet-PHP webserver toont gewoon de volledige inhoud!
– Extensies: ".php", ".php3", of ".phtml"
Wat is PHP? • Wat is MySQL? – – – – –
MySQL is een database server MySQL is ideaal voor zowel kleine als grote applicaties MySQL ondersteunt standaard SQL MySQL is crossplatform MySQL is gratis om te downloaden en te gebruiken
• PHP + MySQL – Combinatie werkt ook crossplatform • Bv. Unix PHP server en Windows MySQL server
Wat is PHP? • Waarom PHP? – PHP draait op verschillende platformen (Windows, Linux, Unix, etc.) – PHP is compatibel met de meeste webservers (Apache, IIS, etc.) – PHP is gratis te downloaden en gebruiken: www.php.net – PHP is eenvoudig om aan te leren – PHP is efficiënt
PHP basis – les 1 • • • • •
HTML intro Wat is PHP? De installatie van PHP Eerste stappen in PHP Variabelen
De installatie van PHP • Wat heb ik nodig? – Tekst editor – Optioneel: webserver die PHP ondersteunt – Optioneel: database
• Webserver – Voor PHP redelijk goedkope webruimte: € 50 / 1 GB – Eerst lokaal pagina editeren, daarna uploaden • Niet handig! Oplossing is lokale webserver, bv. XAMPP
De installatie van PHP • 3 manieren: – Lokaal editeren + telkens uploaden naar gehuurde webserver – Manueel: • • • •
Webserver downloaden + installeren PHP 5 downloaden + installeren MySql downloaden + installeren Alles testen
– Automatisch: • XAMPP installeren
De installatie van PHP • De installatie van Wampserver – Download van http://www.wampserver.com/en/download.php – Installeer WampServer2.0i.exe • Neem altijd de default waardes aan
– De installatie is klaar! (zie c:\wamp)
De installatie van PHP • De installatie van Wampserver – Windows beveiliging: laat de connectie naar buiten toe
De installatie van PHP • De installatie van Wampserver – Start Wampserver
De installatie van PHP • De installatie van Wampserver – Zet de Wampserver ONline • Linkermuisklik op het icoontje • Kies dan Localhost
Oefening 1 • Installeer WAMPP • Open de localhost • Bekijk de output van de phpinfo() functie
De installatie van PHP • Document root – Elke DNS wijst naar één PC/server met een uniek IP-adres – Als dit een webserver is, dan wil je iets tonen – Dat is het document dat in je document root wilt zetten www.squashclubleuven.be / www.kbc-fotoclub.be
/squash/… /foto/…
www.kbcopenleren.be
openleren/…
De installatie van PHP • Document root – Bij WAMP: C:\wampp\www\ – De webserver zoekt standaard naar pagina’s zoals: • index.htm • index.html • index.php – Altijd zorgen dat (je eigen versie van) deze pagina bestaat!
Oefening 2a • Open de document root van WAMPP • Hernoem de index.php file naar blah.php • Bekijk de localhost weer via het icoontje in je taakbalk • Wat is het gedrag van de webserver?
Oefening 2b • Maak een nieuwe pagina index.html aan met een persoonlijke boodschap • Bekijk de localhost weer opnieuw
De installatie van PHP • Webservers en operating systems – Grote verschillen tussen werking Windows en Unix/Linux – Wees consistent met gebruik van capitalisatie – In bestandsnamen gebruik géén: • Spaties • Gekke tekens: è, ^, ¨, *, /, … • Bv. “mijn pagina hé.html” wordt “mijn%20pagina%20hé.html”
– In plaats daarvan gebruik je: • Koppeltekens: • Underscores: _ • Bv. “mijn_pagina_he.html”
Huiswerk • Installeer thuis WAMPP • Los het probleem op dat je krijgt wanneer er géén index.html of index.php pagina gedefineerd is • Zie syllabus: Les 2 – p. 5 t/m 7
PHP basis – les 1 • • • • •
HTML intro Wat is PHP? De installatie van PHP Eerste stappen in PHP Variabelen
Eerste stappen in PHP • PHP is een scripttaal • PHP wordt geïnterpreteerd • PHP kan meerdere outputs geven (tekst, figuren, HTML, …) – Wij focussen op HTML
• De interpreter zal dan PHP scripttaal omzetten naar HTML output • Er wordt nooit PHP getoond op het scherm – Tenzij je een PHP file op een niet-PHP server zet
Eerste stappen in PHP • Basis PHP syntax – PHP code moet omringt worden door: • • • •
… ?> Binnen deze tags: géén HTML of gewone tekst schrijven! Buiten deze tags: wel HTML of gewone tekst mogelijk
– Elke PHP file eindigt op .php – Elke instructieregel eindigt op een kommapunt “;” – Er kunnen meerdere instructieregels op één lijn staan in je tekstverwerker; • Bv. echo “een”; echo “twee”; echo “drie”;
Eerste stappen in PHP • Basis PHP syntax – Bijvoorbeeld:
HTML code deel 1
PHP code
HTML code deel 1
Eerste stappen in PHP • Basis PHP syntax – Bijvoorbeeld:
Start tag PHP PHP instructie
Eind tag PHP
kommapunt
Eerste stappen in PHP • Basis PHP syntax – 2 basis output instructies: • void echo ( string $arg1 [, string $... ] ) • int print ( string $arg )
Eerste stappen in PHP • Commentaar: – Te gebruiken om uitleg te schrijven bij je code – Doel: • Jezelf + anderen helpen • Debuggen!
– 3 vormen: • //uitleg • /* … */ • # uitleg
-> 1 regel commentaar
-> meerdere regels commentaar -> 1 regel commentaar (verouderde syntax)
Oefening 3 • Maak de pagina op de volgende slide • Alle HTML code binnen de body moet via PHP naar het scherm geschreven worden. • Gebruik zowel echo() als print() • Zoek eerst op www.php.net op hoe deze werken! • Extra: zoek het volgende op Google op en kijk welke problemen andere ontwikkelaars hebben: – php parse error: syntax error, unexpected T_STRING
Oefening 3
PHP basis – les 1 • • • • •
HTML intro Wat is PHP? De installatie van PHP Eerste stappen in PHP Variabelen
Variabelen • Variabelen worden gebruikt om tijdelijke waardes in het geheugen op te slaan – Bv. tekst, getallen, datums, …
• Eens gedeclareerd kunnen ze overal in je script gebruikt worden • Alle variabelen in PHP beginnen met een $-teken • Correcte manier voor declareren: $variabele = waarde;
Variabelen variabelenaam waarde
$groet = “Hallo wereld”; dollarteken
afsluiting regel operator voor toekenning
Variabelen • Regels voor naamgeving: – Naam moet starten met letter of underscore – Naam kan enkel volgende tekens bevatten: • • • •
a t/m z A t/m Z 0 t/m 9 Underscore _
– Geen spaties toegelaten – Woorden scheiden met een underscore • Bv. $aantal_gebruikers
– Hoofdlettergevoelig!
Variabelen • PHP is een “loosly typed language” – Een variabele moet niet gedeclareerd zijn voor je er een waarde aan toevoegt – Je moet niet zeggen welk datatype je wilt – PHP zet automatisch om naar het juiste type adhv. de waarde – PHP declareert variabele automatisch vanaf wanneer je hem gebruikt
Variabelen • PHP is een “loosly typed language” – Voordelen: • Eenvoudig • Snel en kort • Niet nadenken over type
– Nadelen: • Rommeltje! • Onbewust bezig: niet zo goed voor het geheugen • Geen controle over type
Variabelen • Een waarde naar het scherm schrijven: – Bv. echo “Goeiemorgen $naam”; – Of: echo “Goeiemorgen” + $naam; – Of: echo “Goeiemorgen” . $naam; – Of: echo ‘Goeiemorgen’ . $naam;
Variabelen • Concatenatie operatoren: – + voor strings – . voor strings en getallen
• Tussen enkele quotes kan je géén variabelen gebruiken! – Bv. echo “Goeiemorgen $naam”;
Goeiemorgen Karel
echo ‘Goeiemorgen $naam’;
Goeiemorgen $naam
Variabelen • Escapen van speciale karakters: – Nodig bij “, ‘, $, \, … – Bv. echo ”Dit kost $ 100”;
Dit kost $ 100
echo ”Hij zei: \“Hallo!\””;
Hij zei: “Hallo!”
– Speciale escapekarakters: • \n • \r • \t
nieuwe regel nieuwe paragraaf tab
Variabelen • HTML kent géén whitespace – Oplossing: whitespace invoegen:
,
,
• PHP heeft als output HTML en kent dus ook géén whitespace • Bijvoorbeeld: – echo “regel1 regel2”; – echo “regel1\n regel2”; – echo “regel1
regel2”; – echo “regel1
\n regel2”;
HTML broncode
webpagina in IE
regel1 regel2
regel1 regel2
regel1 regel2
regel1 regel2
regel1
regel2
regel1 regel2
regel1 regel2
regel1 regel2
Oefening 4a • Maak een pagina die: – Twee gehele getallen (bv. 3 en 5) optelt en naar het scherm print – Zowel de 2 gehele getallen als de som steek je telkens in aparte variabelen
Oefening 4b – Eén geheel getal (bv. 3) en één kommagetal (bv. 5,2) optelt en naar het scherm print – Zowel de 2 gehele getallen als de som steek je telkens in aparte variabelen
Oefening 4c • Maak een pagina die: – Eén geheel getal (bv. 3) en één kommagetal (bv. 5,2) samenvoegt en naar het scherm print – In plaats van de “+” te gebruiken voor de som te maken, gebruik je nu de “.” • Dus: ipv. 3 + 5,2 doe je nu: 3 . 5,2
– Zowel de 2 gehele getallen als de som steek je telkens in aparte variabelen
Oefening 4d – Volgende zin naar het scherm schrijft: • Mijn nickname is: \slash\!
Oefening 4 • Oplossing
Oefening 5 • Zorg dat de broncode van volgend script leesbaar wordt: – oefening5_opgave.php
• Wat is “leesbaar”? – Tip: zoek op Google: indent style wiki
PHP basis – volgende les (2) • • • • • •
Korte herhaling les 1 Variabelen > Strings Operatoren Arrays Rekenen met PHP Formulieren
Bedankt voor jullie aandacht!