Webbprogrammering. Introduktion till PHP. Christian Ohlsson



Relevanta dokument
Karlstads Universitet, Datavetenskap 1

Innehåll. PHP Grundkurs. Introduktion till PHP. Kurslitteratur. Webbserver. Lite historik. PHP Grundkurs 1

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

Användarhandledning Version 1.2

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Introduktion till PHP

Databaser på webben. Revision Johan Näsholm, johan@nasholm.com

Webbservrar, severskript & webbproduktion

Avancerade Webbteknologier

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Introduktion HTML och PHP 732G16 Databaser design och programmering

PHP. TNMK30 - Elektronisk publicering

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

PHP. Dynamiska webbsidor

Webbprogrammering. Sahand Sadjadee

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Introduktion till användning av linux-servern sledge och några övningsuppgifter

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

729G28. Webbprogrammering och databaser. Introduktion till webbutveckling med PHP. Jakob Pogulis Institutionen för Datavetenskap (IDA)

PHP-presentation Dataföreningens Open Source-nätverk

Introduk+on +ll programmering i JavaScript

Webbprogrammering - 725G54 PHP. Foreläsning II

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Innehåll. MySQL Grundkurs

TDIU01 - Programmering i C++, grundkurs

Nya webbservern Dvwebb.mah.se

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

F8 Webbteknologier 2. PHP PHP: Hypertext Preprocessor

Olika slags datornätverk. Föreläsning 5 Internet ARPANET, Internet började med ARPANET

JAVASCRIPT. Beteende

F8 Webbteknologier 2. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

F4. programmeringsteknik och Matlab

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Del 1 Grunderna i PHP

En grundkurs i hemsidor och hur de är uppbyggda

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Objektorienterad programmering Föreläsning 2

OOP Objekt-orienterad programmering

Programmeringsteknik med C och Matlab

C++ Slumptalsfunktioner + switch-satsen

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

JavaScript. En Introduktion

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Webbsidor och webbservrar

Matematisk Modellering

Chapter 3: Using Classes and Objects

Planering Programmering grundkurs HI1024 HT data

Visual Basic, en snabbgenomgång

Uppgifter teknik HT17 (uppdaterad v. 40)

TDIU01 - Programmering i C++, grundkurs

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Föreläsning 2 Programmeringsteknik och C DD1316

Föreläsning 2. Operativsystem och programmering

Innehålls förteckning

Planering av ett större program, del 2 - for och listor. Linda Mannila

Programmering B med Visual C

Malmö högskola 2007/2008 Teknik och samhälle

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

OOP Objekt-orienterad programmering

Enkla datatyper minne

Variabler och konstanter

Tentamen i Introduktion till programmering

Iteration while-satsen

Imperativ programmering. Föreläsning 2

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Innehåll. JavaScript - Grundkurs. Vad är JavaScript? Vad är JavaScript? Vad behövs? Lite historia

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

L04.1 Marodören. Inledning. Mål. Genomförande. Uppgift 1 Hello World. Moment I

JavaScript En Introduktion

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Övning (X)HTML 2. Sidan 1 av

TNMK30 Elektronisk publicering HT 2014 Laboration 5: PHP och MySQL

Föreläsning 3. Iteration while-satsen

Lite logik. Kap 6: Sid 2

Inledande programmering med C# (1DV402) Introduktion till C#

Lektion 5 HTML, CSS, PHP och MySQL

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

STRÄNGAR DATATYPEN. Om du vill baka in variabler eller escape-tecken måste du använda dubbla citattecken. strängar

En kort text om programmering i C.

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

TDIU01 - Programmering i C++, grundkurs

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Hemsideutveckling för Anjool AB

Funktioner. Linda Mannila

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Laboration 1 Introduktion till Visual Basic 6.0

Klassdeklaration. Metoddeklaration. Parameteröverföring

Laboration 1: Arbeta med formulär och strängarhantering

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 1 & 2 INTRODUKTION

Transkript:

Webbprogrammering Introduktion till PHP 1

Hur fungerar PHP PHP betyder PHP Hypertext Processor Tillhandahåller server-side scripting Är ett interpreterande språk Du skriver ett antal uttryck Webbservern ger dessa uttryck till en PHP tolk Tolken exekverar dessa uttryck rad för rad Hittar den ett fel avbryter den direkt Kompilerande språk är annorlunda. De läser hela programmet före de kan exekvera det 2

Intro till PHP PHP skapades av en samling Perl-skript skapade 1994 av Rasmus Lerdorf. När denna samling distribuerades kallades paketet för: Personal Home Page (PHP) Syntaxen ändrades för att likna C och Java Fram till 1999 användes PHP i ganska liten utsträckning i skuggan av ASP Januari 2000: 1 miljon webbservrar December 2000: 5 miljoner webbservrar Den snabba ökningen har bara fortsatt PHP levereras som öppen källkod 3

Apache och PHP När en fil har ändelsen.php, skickas den inte till klienten Som är det som händer när filen heter.html Istället läser Apache filen, och om den hittar PHP-delar i filen skickas dessa till PHP-tolken Denna tolk är en modul som finns i webbservern Apache 4

Webbservrar med stöd för PHP Den i särklass vanligaste servern PHP används med är Apache, som också är den server som dominerar i användning på Internet. Apache används på c:a 2/3 av webbservrarna. Vanligast används Apache på antingen Linux- eller UNIX-maskiner, men det går det att använda PHP med i stort sett alla webbservrar i bruk. Apache (Linux/Unix/Windows/Mac) MS Internet Information Server (Windows) Netscape IPlanet Roxen Alla andra servrar med stöd för CGI 5

Marknadsandelar 6

Inbyggd funktionalitet i PHP En stor fördel med PHP är den enorma mängden inbyggd funktionalitet som finns i språket. PHP har det mesta man kan tänkas behöva för att bygga dynamiska webbplatser, bland annat: LDAP - söka i kataloger IMAP (POP, NNTP) - Åtkomst av e-post-servrar FTP - Hämtning av filer via FTP BC - Avancerade matematik funktioner XML - Standardiserat märkspråk för dokumentutbyte PDF - skapa Acrobat PDF dokument SWF (Flash) - Skapa Flash-animationer MCRYPT - Teknik för kryptering av känslig information Cybercash - Ett av de betalningssystem PHP stödjer 7

Att använda PHP Ni kommer genom kursen att använda er webbplats på servern webbkurs.ei.hv.se eller någon annan (som Binero) Till skillnad från HTML måste man ha en webbserver för att använda PHP Därför att en webbläsare ej innehåller någon PHP-tolk Ett alternativ kan vara att installera en lokal webbserver på din dator Jag använder ofta XAMPP. Laddas hem från: http://www.apachefriends.org/en/xampp.html 8

XAMPP är ett program för flera plattformar innehållande: Apache webbserver PHP MySQL databas PhpMyAdmin Filezilla FTP server OpenSSL Perl Webalizer Mercury webmail Allt i en 45Mb stor installationsfil J 9

Första PHP-skriptet Skriv nedanstående i en fil och spara den som hello.php Med XAMPP (windows): spara den som c:\xampp \htdocs\webbprogrammering\hello.php Var noga med att verkligen blir raka!!! Surfa sedan till: http://localhost/webbprogrammering/hello.php <?php echo Hello World! ;?> hello.php 10

Andra PHP-skriptet Skapa en ny fil, kalla den för info.php med nedanstående innehåll. Surfa till http://localhost/webbprogrammering/info.php En hel webbsida skapas åt dig. Titta noga igenom alla variabler! info.php <?php phpinfo ();?> 11

Magin med PHP En klient kan aldrig se PHP-kod. Den ser bara det som PHP-tolken har gjort med koden Du kan i en PHP-fil skriva HTML-kod, och när du önskar byta till PHP i samma fil Filen kan ha flera HTML och PHP-delar 12

Formulärhantering med PHP Ett vanligt användningsområde för PHP är bearbetning av data inskriven i ett formulär. För detta behöver vi två filer: En HTML-fil med formuläret En PHP-fil som behandlar formulärdatan Vi skapar våra två filer för detta på nästkommande sidor 13

HTML-filen <html> <form action="test2.php" method="post"> Namn: <input type="text" name="namn"> <br> Tele: <input type="text" name="tele"> <br> <input type="submit" value="skicka"> </form> </html> test2.html 14

PHP-filen <?php $namn = $_POST['namn']; $tele = $_POST['tele']; echo "Du heter $namn och har telefonnummer $tele <br>"; echo "Du heter ". $namn. " och har telefonnummer ". $tele. "<br>";?> test2.php 15

Resultatet 16

Men lite formatering av text då? Om vi vill ha ett visst utseende på resultatsidan görs detta i vanlig ordning med lite CSS Min fil stil.css ser ut enligt nedan body { color: #fd5; background-color: #22c; font: 1em Verdana; } stil.css 17

Min nya PHP-fil <?php $namn = $_POST['namn']; $tele = $_POST['tele']; echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"stil.css\">"; echo "Du heter <b>". $namn. "</b> och har telefonnummer <i>". $tele. "</i><br>";?> test2b.php 18

Resultatet 19

Variabler En behållare för ett värde Identifieras med ett dollartecken ($) Använd inte specialtecken som namn Använd bara a-z, A-Z, 0-9, _ Undvik å,ä,ö Case-sensitive $antal, $ANTAL, $Antal är alla olika variabler Använd namn som lätt påminner om variabelns syfte $antalbesokare, $datafil, $efternamn 20

Datatyper I PHP finns tre grundläggande datatyper Integer Används för att representera ett heltal. Man allokerar 4 bytes i minnet -2 till +2 miljader $antal = 123; $antal = -42; // Vanligt tal // Negativt tal Prefixet -, 0 och 0x visar vilket sorts tal det är 21

Datatyper Double Används för att representera reella tal (flyttal) Innehåller decimaler eller exponenter Maximalt 1.8 308 $antal = 6.14; // Tal med decimaler $antal = 0.0614e2; // Tal med exponent 22

Forts String Används för att representera ickenumeriska värden som bokstäver och ord $namn = Bertil Nilsson ; // Vanlig text $antal = 42 ; // Lagras som två tecken $antal = 42; // Lagras som en integer Det är citationstecknen som visar att det är en sträng. Man måste använda citationstecken om strängen innehåller mellanslag! $namn = Bertil; // Fungerar $antal = Bertil Nilsson; // Fungerar inte! 23

Andra datatyper Utöver dessa tre vanliga typer finns även: Array (vektorer) Lagra flera värden. Object Kan innehålla andra datatyper eller funktioner Bool Lagrar TRUE eller FALSE Null Indikerar att datatypen är tom Resource Speciell data, exempelvis $db=mysql_connect(); 24

Skriva ut variabler <?php $namn = "Anna Bertilsson"; //String $alder = 29; // Integer $langd = 1.74; // Double echo "Namn: $namn <br>"; echo "Ålder: $alder <br>"; echo "Längd: $langd <br>"; test3.php?> 25

Escapesekvenser Används för att skriva ut specialtecken och för att komma runt problem med utskrift av $ ' osv... \' Apostrof \ Citationstecken \\ Backslash \$ Dollartecken \n Ny rad \t Tab 26

Villkorssatser Hittills har alla PHP-program körts igenom rad för rad oberoende av vad användaren matat in. För att ändra detta behövs styrstrukturer I PHP skrivs dessa på samma sätt som alla högnivåspråk, och de varianter som finns är: If-satsen If-else If-else if-else Switch-satsen 27

Exempel på en if-sats <?php $alder = 39; // Gör en jämförelse mellan innehållet // i variabeln $alder och talet 65. // Värderas detta till sant utförs "blocket" if ($alder > 65) { echo "Du är pensionär."; } else { echo "Du är fortfarande ung."; } test4.php?> 28

Resultatet 29

Mer exempel på en if-sats <?php echo "<link rel=\"stylesheet\" type=\"text/css\" \"stil.css\">"; href= test4.php // Funktionen date hanterar tid // Indatan D innebär att date returnerar // det engelska namnet på dagen $namn_pa_dagen = date(d); if ($namn_pa_dagen == "Sat" or $namn_pa_dagen == "Sun") echo "Det är helg!"; else echo "Det är vardag";?> 30

Resultatet 31

Switch-satsen En if-else if-else sats kan bli väldigt lång om det finns många alternativ att välja på, exempelvis i en meny. Då kan switch-satsen underlätta. Syntax: switch(variabel) { case alternativ : action; break ; case alternativ : action; break ; default : action; break; } 32

HTML-filen <html> <link rel="stylesheet" type="text/css" href="stil.css"> <h1>exempel</h1> <form> <select name="val"> <option value="g">glad <option value="l">ledsen <option value="s">sur </select> <br> <input type="submit" value="skicka data"> </form> </html> test6.html 33

PHP-filen <?php echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"stil.css \">"; // Hämta in valet från formuläret $val = $_POST['val']; switch($val) { case "G" : print "Du är tydligen glad idag!"; break; case "L" : print "Du är ledsen, trist för dig"; break; case "S" : print "Du är sur. Okej då!"; break; case "" : break; default : print "Nåt gick fel..."; break; }?> test6.php 34

Resultatet 35

Loopar Man använder loopar för att få en viss del av programmet för att utföra samma sak flera gånger I PHP är det framförallt två typer av loopar som används. Dessa är: For-loopen for($var ; brytvillkor ; förändring) { kodblock } While-loopen while(brytvillkor) { kodblock } Eller med do-while-loopen do { kodblock } while (brytvillkor); 36

Exempel på en for-loop <?php echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"stil.css\">"; for ($i=0 ; $i<10 ; $i++) { // Funktionen rand slumpar ett tal mellan // 4 och 87. Det slumpade värdet sparas // I variabeln slump, som skrivs ut.?> } $slump = rand (4,87); echo "Slumptal: $slump <br>"; test7.php 37

Resultatet 38

While-loop <?php echo "<link rel=\"stylesheet\" type=\"text/css\" href= \"stil.css\">"; $slumpal = 0; $antal_slumpningar = 0; while ($slumptal!= 50) { $slumptal = rand (1, 100); $antal_slumpningar++; } echo "Det krävdes $antal_slumpningar slumpningar till det blev 50.";?> test8.php 39

Resultatet 40

Funktioner Funktioner är ett mycket centralt begrepp inom all programmering Man använder funktioner för att dela in ett stort program i lättförståliga bitar Vissa delar av programmet skall kanske utföras flera gånger Indata Funktion Utdata 41

Forts PHP har över 2000 inbyggda funktioner. Använd dessa i första hand! Skrivna i C och är mycket effektiva och säkra Exempel på inbyggda funktioner: mysql_connect(); htmlentities(); fopen(); mail(); pow(); nl2br(); 42

Egna funktioner Skrivsättet för en funktion är: function funktionsnamn (parametrar) { funktionskropp; return returvärde } Funktionsnamnet skall vara ett beskrivande verb beraknasumma eller berakna_summa Parametrarna kan vara 0 eller flera Returvärdet är inte obligatoriskt OBS! Alla namn bör anges med vanliga bokstäver och inga specialtecken! 43

Exempel 1: Utan parametrar <?php function makeheader() { echo <html><head> ; echo <title> Hello! </title> ; echo </head> <hr> ; } makeheader(); echo </html> ;?> 44

Exempel 2: Med parametrar <?php function makeheader($title) { echo <html><head> ; echo <title> $title </title> ; echo </head> <hr> ; } makeheader( Detta är min titel! ); echo </html> ;?> 45

Exempel 3: Returvärde <?php function beraknaomkrets($radie) { $omkrets = 2 * $radie * 3.1415; return $omkrets } $resultat = beraknaomkrets(4); echo Omkretsen är $resultat le ;?> 46

Exempel 4: Flera funktioner <?php function beraknaomkrets($radie) { $omkrets = 2 * $radie * 3.1415; return $omkrets; } function beraknavolym($radie) { $volym = 4/3 * 3.1415 * pow($radie,3); } return $volym;?> echo Omkrets:. beraknaomkrets(3); echo Volym:. beraknavolym(3); test9.php 47

Resultatet 48

Exempel <?php echo "<link rel=\"stylesheet\" type=\"text/css\" href= \"stil.css\">"; function addera ($tal1, $tal2) { $summa = $tal1 + $tal2; return $summa; } $svar = addera (4,5); echo $svar;?> test10.php 49

Resultatet 50

Mer info om PHP Internet www.php.net Huvudsajten för PHP php.linux.se Referens på svenska www.phpbuilder.com Mer avancerad sajt Böcker PHP Programmering, ISBN 9-1636-0660-7 Webbprogrammering med PHP, ISBN 91-44-01941-6 Professional PHP programming, ISBN 1-86100-296-3 PHP 4 Bible, ISBN 0-76454-716-X Tretusenmiljadermiljoner olika forum 51

52