PHP. Dynamiska webbsidor



Relevanta dokument
PHP. TNMK30 - Elektronisk publicering

JAVASCRIPT. Beteende

! HTML Formulär! JavaScript! Syntax! Events! DOM. ! URL variabler i en query string (get) ! HTTP post request (post)

JS & beteende. TNMK30 - Elektronisk publicering

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

E12 "Evil is going on"

Webbprogrammering. Sahand Sadjadee

Webbprogrammering - 725G54 PHP. Foreläsning II

Avancerade Webbteknologier

Webbservrar, severskript & webbproduktion

Användarhandledning Version 1.2

F8 Webbteknologier 2. PHP PHP: Hypertext Preprocessor

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

Karlstads Universitet, Datavetenskap 1

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

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

Introduktion HTML och PHP 732G16 Databaser design och programmering

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

PHP - Fortsättning. PHP och MySQL

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

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Introduk+on +ll programmering i JavaScript

Introduktion till PHP

Erfarenheter från labben

PHP. PHP: Hypertext Preprocessor

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

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?

Föreläsning 4 Serverskript PHP Validering av data med serverskript Formulär

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

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

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

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

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

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

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Webbprogrammering. Introduktion till PHP. Christian Ohlsson

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

Laboration 6 Formulär och stränghantering övningar/uppgifter

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

TDIU01 - Programmering i C++, grundkurs

Ajax TruClient. Erfarenheter, tips och trix från Swedbank IT. Christian Gerdes Performance Engineer, LIGHTS IN LINE AB

TDDE44 Programmering, grundkurs

Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg

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

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Visual Basic, en snabbgenomgång

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

En snabb titt på XML LEKTION 6

Ordlistor, filhantering och ut på webben. Linda Mannila

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

Föreläsning 18 Filer och avbildningar

Introduktion C-programmering

Översikt över Visual Basic

Planering Programmering grundkurs HI1024 HT data

F8 Webbteknologier 1. Dynamiska webbsidor

Lektion 5 HTML, CSS, PHP och MySQL

Kursplanering Utveckling av webbapplikationer

Elektronisk publicering TNMK30

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

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Nya webbservern Dvwebb.mah.se

Repetition C-programmering

F4. programmeringsteknik och Matlab

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

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

WCMS-15, Webbutvecklare CMS

E12 "Evil is going on"

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

Planering Programmering grundkurs HI1024 HT 2014

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

Programmering för språkteknologer II, HT2014. Rum

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

729G04 Programmering och diskret matematik. Föreläsning 7

Språket Python - Del 2 Grundkurs i programmering med Python

Innehåll. MySQL Grundkurs

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

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

729G74 IT och programmering, grundkurs. Tema 3. Föreläsning 2 Jody Foo,

Lektion 5, del 1, kapitel 12

Frekvenstabell över tärningskast med C#

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

Föreläsning 2 Programmeringsteknik och C DD1316

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Beräkningsvetenskap föreläsning 2

729G04 Programmering och diskret matematik. Python 3: Loopar

Tentamen Grundläggande programmering

Sammanfattning. Listor. List-manipulering. Matris. /home/lindahlm/activity-phd/teaching/11dd1310/exercise3/exercise3.py September 13, 20111

Enkla datatyper minne

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

Transkript:

PHP Dynamiska webbsidor

WEBBPROGRAMMERING PÅ SERVERSIDAN DB server web browser client client script HTTP Request (get, post) HTTP Response (HTML, CSS, JS) web server server script JS PHP file (txt, xml, json)

WEBBPROGRAMMERING PÅ SERVERSIDAN Program för serversidan kan skrivas i flera språk finns PHP, ASP, Python, Perl, Ruby on Rails Webbservern kör mjukvara för att exekvera dessa program och skicka tillbaks deras resultat

FÖRDELAR KLIENT- & SERVERSKRIPT Klientskript (JavaScript) Kan modifiera en sida utan att behöva skicka/ta emot data till/från servern Händelsestyrt: svarar när användaren gör något på webbsidan (klick, tangenttryck etc.) Serverskript (PHP) Säkert: tillgång till serverns privata data, klienten kan inte se källkoden Oberoende av webbläsare Kan skriva filer, öppna anslutningar till servrar, ansluta till databaser,

PHP PHP Hypertext Processor (PHP) Dynamiska webbsidor Hantera formulärdata Hämta och bearbeta data från olika källor Filer Databaser Enkel, tillgänglig, används av många Gratis, open source, kompatibel med många webbservrar Dokumentation & instruktioner: http://php.net

PHP Tolkat språk Kompileras ej Dynamiskt och svagt typat Variabler behöver inte deklareras Fel är ofta tysta En del grundprogrammeringskoncept och syntax liknar C++, JavaScript Inkluderas i en webbsida och integrerar med sidans HTML/CSS innehåll

PHP PHP dokument har ändelsen: ".php" PHP skript börjar <?php och slutar?>! Bäddas in bland HTML kod Kan inkludera andra PHP filer Växla fritt mellan HTML och PHP Körs på servern HTML innehåll! <?php!!// PHP kod!?>! HTML innehåll! <?php!!include("skript.php");!!// PHP kod!?>! HTML innehåll! Exempel: php_exempelx.php

PHP PHP på campus W: katalog http://www.student.itn.liu.se/~liuid### PHP hemma Programpaket: Apache, PHP, MySQL XAMPP: http://www.apachefriends.org/index.html Andra paket: http://en.wikipedia.org/wiki/list_of_apache %E2%80%93MySQL%E2%80%93PHP_packages http://localhost:8080/katalog/

PHP OUTPUT 2 sätt att skriva ut: print! Skriver ut en sträng i taget, returnerar 1 echo! Kan skriva ut en eller fler strängar Funkar med () eller utan Kan skriva ut strängar eller variabler <?php! $name = "PHP";! print("hej hå!\n");! print "Vi kör $name\n";!?>! <?php! $name = "PHP";! echo "<h1>hej hå!</h1>";! echo "Idag","kör vi $name";!?>! Exempel: php_syntax.php

PHP KOMMENTARER Kommentarer på 3 sätt <?php!!// kommentar!!# kommentar!!/*!!!flerradskommentarer!!*/!?>!

PHP VARIABLER Variabler börja med $ symbolen följt av variabelnamnet: $variabelnamn Både när de deklareras och när de används Måste börja med ett bokstav eller _ Variabelnamn kan enbart bestå av alfanumeriska tecken och _ (A-z, 0-9, _ ) Skillnad mellan små & stora bokstäver ($y $Y) <?php!!$namn= "PHP";!!$storlek = 5;!!$stor_storlek = $storlek + 10;!?>!

PHP VARIABLER Variabler deklareras implicit i PHP Behöver inte ange typ, eg. int, string, var! 7 huvudtyper int, float, boolean, string, array, object, NULL! Kan testa om det är en specifik typ med is_type($variabelnamn): is_string, is_int! Kan ta reda på & skriva ut typen med: gettype($variabelnamn), var_dump($variabelnamn)! PHP konverterar automatiskt variabler till rätt typ beroende på deras värde Explicit konvertera typen med: (type) $variabel $storlek = (int) "40";! Exempel: php_syntax.php

PHP VARIABLER Aritmetiska operatorer +, -, *, /, % Tilldelningsoperatorer =, +=, -=, *=, /=, %=, ++, --! Flertal matematiska funktioner och egenskaper min, max, abs, rand, ceil, sqrt, M_PI, M_E! http://php.net/manual/en/ref.math.php!

PHP VARIABLER: SCOPE Scope: varifrån jag kan nå och använda variabler Globala variabler Deklarerade utanför funktioner och kan nås endast utanför funktionerna Lokala variabler Deklarerade inuti en funktion och kan endast nås endast inuti denna funktion För att nå en global variabel inuti en funktion måste nyckelordet "global" användas Exempel: php_syntax.php

PHP STRING "" eller '' Tecken är indexerade, första tecknets index 0 Nästla med " '' ": "Han heter 'John' "! Längd på sträng: strlen($variabelnamn), strlen("sträng")! Konkateneras med punkt "." $txt = "ett". " två"; à $txt är "ett två" Konkateneras och tilldelas med ".=" $txt.= " tre"; à $txt är "ett två tre"

PHP STRING PHP tillåter att variabler skrivs direkt in i strängar och tolkas när skriptet exekveras MEN Strängar i "" tolkas à skriver ut värdet på variabeln Strängar i '' tolkas ej à skriver ut variabelnamnet $namn = "John";! echo "Han heter $namn"; /* Han heter John */! echo "Han heter {$namn}"; /* Han heter John */! echo 'Han heter $namn'; /* Han heter $namn */! Exempel: php_syntax.php

PHP STRING FUNKTIONER Väldigt stort antal sträng funktioner explode dela upp sträng till en array implode sätt ihop elementen i array till en sträng strtoupper omvandla till stora bokstäver trim ta bort mellanslag från start och slut substr hämta del av sträng str_replace ersätt delar av sträng med annan strcmp jämför strängar htmlspecialchars konvertera specialsymboler till HTML specialtecken PHP string funktioner: http://php.net/manual/en/ref.strings.php

PHP BOOLEAN Booleans (bool) är antingen TRUE eller FALSE Falska värden: 0, 0.0,, 0, NULL, tomma arrayer FALSE skrivs ut som tom sträng TRUE skrivs ut som 1 Jämförelse & logiska operatorer >, <, >=, <=, ==,!= (~ samma som i C++) Konverterar till rätt typ vid jämförelser 3.0 == 3 à true, 4.5 >= 3 à true ===,!== : strikta operatorer Konverterar ej typen, kollar både typ och värde av variabler 3.0 === 3 à false and, or, xor, &&,,!

PHP NULL NULL: en variabel som inte har ett värde Testa om en variabel har ett värde via isset funktionen Kan tömma variabler genom att sätta dem lika med NULL

PHP FUNKTIONER Deklareras med function! Kan ta ett eller flera argument Kan ha default värde på argument Kan returnera ett värde function funktionsnamn( param1, param2,, paramn-1=defaultvärde, paramn=defaultvärde)! {!!kod som ska evekveras;!!!return värde; /* ej obligatoriskt */! };!

PHP SATSER OCH LOOPAR Flesta satser och loopar samma som i C++ if/else, if/elseif/else satser, for loopar while, do/while loopar break och continue! Specialversion av for loopen för arrayer foreach loop Exempel: php_functions.php

PHP ARRAYER Array sparar flera värden i en variabel Initieras på 2 sätt: #1. deklarera och sen fyll med värden! $arr = array();! $arr[0] = 1;! $arr[] = 2; #lägg till värde!! #2. deklarera och tilldela i ett!!! $arr2 = array(1, 2, "hej");! Kan innehålla olika variabeltyper Lägg till ett värde med tomma hakparentes: [] Funktionen count() returnerar antal element

PHP ASSOCIATIVA ARRAYER Index behöver inte vara heltal Kan vara sträng eller flyttal $arr = array();! $arr["hej"] = 10;! $arr[2] = 34;! Associerar värden till nycklar (keys): nyckel/ värde par Loop:as med foreach statsen Exempel: php_arrayer.php

PHP ARRAY FUNKTIONER Stort antal funktioner för att sortera och manipulera arrayer sort(), rsort() asort(), ksort() print_r() array_push(), array_pop() list($var1,$var2, ) Sortera indexerad array Sortera associativ array baserad på värde resp. nyckel Skriv ut array Lägg till/ta bort element till/från slutet Sparar värdena i en array i variabler PHP Array funktioner: http://php.net/manual/en/ref.array.php

PHP FOREACH LOOP foreach loop:en används för att loopa igenom varje nyckel/värde par i en associativ array foreach ($array as $value) {! }! Om jag vill ha tillgång till både nyckel och värde i loopen:!kod som ska evekveras;! foreach ($array as $key => $value) {! }!!kod som ska evekveras;!

PHP SUPERGLOBALA VARIABLER Inbyggda variabler som alltid är tillgängliga överallt (oberoende av scope ) $GLOBALS array av alla globala variabler $_SERVER array med info om headers, paths, locations $_REQUEST HTTP request variabler $_POST HTTP POST variabler $_GET HTTP GET variabler $_FILES HTTP uppladdade filer $_ENV Environment variabler $_COOKIE HTTP cookies $_SESSION Session variabler

PHP FILHANTERING fopen($filnamn, $mode) öppnar fil för vidare hantering, mode definierar hur filen öppnas t.ex. r Endast läsning, w Endast skrivning a "Append" - skrivning till slutet av filen. Finns inte filen så skapas den. w+ Skrivning och läsning. Finns inte filen så skapas den. Finns det tidigare innehåll i filen så ersätts detta fgets() läser en rad i taget (sätts innanför en loop) feof() kollar om slutet av filen är nådd (används för att bryta loopen) fclose() stänger en öppen fil fwrite($filnamn, $txt) skriver till fil

PHP FILHANTERING PHP har ett stort antal funktioner för att skapa, läsa, editera funktioner på servern http://php.net/manual/en/ref.filesystem.php readfile() file() file_get_contents() file_put_contents() scandir() glob() Läser in en fil och skriver ut den på utskriftsbufferten Läser in en fil som en array av strängar (en per rad) Läser in en fil som en sträng Skriver en sträng till en fil Returnerar en array av alla filnamn i en katalog Returnerar en array av alla filnamn i en katalog som matchar ett givet mönster Exempel: php_file.php

HTML FORMULÄR (FRÅN FÖ3) Används för att ta emot information från användaren och skickar den till en webbserver Uppbyggd av en grupp av gränssnittskontroller T.ex. textfält, checkboxar, radioknappar etc. Informationen från användaren skickas till servern som URL variabler i en query string (get) http://www.google.se/search?q=html+formulär http://./formular_ex.html?user=namn&pwd=12345 HTTP post request (post)

FORMULÄRDATA: GET VS. POST GET request <form action="url" method="get">formulärkontroller</form>! Begär information från webbserver Skickar query parametrar i URL:en à synliga Kan bokmärkas och delas med andra Begränsad storlek på query strängen à informationsmängd POST request <form action="url" method="post">formulärkontroller</form>! Skickar information till webbserver Skickar query parametrar i HTTP request paket à dolda Ingen begränsning på informationsmängd som kan skickas

FORMULÄRDATA: GET VS. POST Välj metod baserat på Vad din formulär ska göra: hämta à GET, skicka à POST Om informationen som behandlas är känslig à välj POST Att tänka på när parametrar skickas i adressfältet: URL kodning för special tecken (görs automatiskt av webbläsaren) & à %26 https://www.google.se/search?q=h&m https://www.google.se/search?q=h%26m Skicka parametrar som du inte vill ska synas som hidden input via POST

HANTERING AV FORMULÄRDATA PHP sparar parametrarna som skickas till webbservern i globala associativa arrayer $_GET! $_POST! För att nå dem: $_GET["parameternamn"];! $_POST["parameternamn"];! För att kolla om de har ett värde: if (isset($_post["parameternamn"]) { }! Exempel: php_form_get.html, php_form_post.html

HANTERING AV FORMULÄRDATA PHP funktion: htmlspecialchars! konverterar specialsymboler till motsvarande HTML specialtecken PHP funktion: htmlspecialchars_decode! Konverterar HTML specialtecken tillbaks till specialsymboler

JAVASCRIPT OBJECT NOTATION (JSON) Lättviktigt datautbytesformat Lätt för människor att läsa och skriva Lätt för maskiner att parsa och generera JSON baseras på två grundstrukturer: En samling av nyckel/värdepar. Beroende på programmeringsspråk, kallas detta bl.a. ett objekt, en 'record', en 'struct', en 'associative array' En ordnad lista av värden. Beroende på programmeringsspråk, kallas detta en 'array', en vektor, en lista, eller en sekvens. Definition från: http://www.json.org/

JSON Syntaxen är lik ett JavaScript objekt {"schema":[! {"datum":"2014-11-10","starttid":"8","titel":"fö-php"},! {"datum":"2014-11-17","starttid":"8","titel":"fö-ux"},! {"datum":"2014-11-20","starttid":"8","titel":"fö-sql"}! ]}! PHP funktioner för att parsa/skriva JSON json_decode, json_encode http://php.net/manual/en/book.json.php JavaScript funktioner för att parsa JSON JSON.parse, JSON.stringify http://www.ecma-international.org/ecma-262/5.1/ #sec-5.1.5

XML EXtensible Markup Language Märkspråk för att beskriva data Komplement till HTML HTML för att beskriva innehåll & struktur Märkningar ej fördefinierade Definiera egna taggar Skicka/ta emot, strukturera, spara, dela data W3C rekommendation

XML Självbeskrivande Följer trädstruktur <?xml version="1.0" encoding="utf-8"?>! <schema>!!<event>!!!<datum>2014-11-10</datum>!!!<starttid>8:00</starttid>!!!<titel>fö-php</titel>!!</event>!!<event>!!!<datum>2014-11-17</datum>!!!<starttid>8:00</starttid>!!!<titel>fö-ux</titel>!!</event>! </schema>!

AJAX Asynchronous JavaScript and XML (AJAX) Samlingsnamn för tekniker och koncept för att dynamiskt hämta data från en webbserver och använda det för att uppdatera en webbsida Inte nytt programmeringsspråk Asynkron kommunikation à sker i bakgrunden XMLHttpRequest-objektet: tillåter JavaScript på en webbsida att göra anrop till servern utan att sidan laddas om. JSON används ofta istället för XML

LÄNKAR TILL MATERIAL/LÄSNING PHP dokumentation: http://php.net/ PHP tutorial: http://php.net/manual/en/tutorial.php W3schools PHP tutorial: http://www.w3schools.com/php/ W3schools PHP form validation: http://www.w3schools.com/php/ php_form_validation.asp JSON: http://www.json.org/

ATT TÄNKA PÅ: PHP Lägg statisk HTML kod utanför PHP taggarna Bygg din lösning i steg och öka komplexiteten successivt Välj metod för att skicka formulärdata baserat på Vad din formulär ska göra: hämta à GET, skicka à POST Om informationen som behandlas är känslig à välj POST

INFÖR JAVASCRIPT LABB Gör förberedelseuppgiften Läs canvas dokumentation http://www.w3schools.com/html/html5_canvas.asp DOM event dokumentation http://www.w3schools.com/jsref/dom_obj_event.asp Best practices JavaScript: http://www.w3schools.com/js/js_best_practices.asp

INFÖR PHP LABB Gå igenom kodexemplen Läs labbbeskrivningen Bryt ner uppgiften i steg och lös den progressivt Dela upp PHP koden i funktioner Öka funktionernas komplexiteten successivt

Nästa måndag är användbarhet i fokus! TP2 kl. 08:15