2002-05-06 © Björn Hedin, NADA/KTH 2002 1 Webbaserade informationssystem med PHP och MySQL 2D1522 Datorteknik och -kommunikation

Slides:



Advertisements
Liknande presentationer
låt oss presentera SLIDEPLAYER.SE
Advertisements

Snabbguide och tips.
BAS-M Hur du på ett enkelt sätt administrerar din båtklubbs register.
Fatta PHP - Din guide till en större värld Knut Hahnsskolan – Ronneby Virtuella miljöer (MUM1203, 100p) Fredrik JohanssonBild 1 av 10.
Configured Edititon för Unicenter 3.0 Sättet att snabbt komma igång med Unicenter.
Vi ser ingenting nytt… vad har ni gjort egentligen? Jo… det är såhär…
Butiksdata.
First Class Arken - Introduktionskurs
Tomas Sandström, Adtollo
Skapa ett video-CV på YouTube
Statistikmodulen Omicron Syntax Data AB Framåt.
Intagningssystemets databas Ögonblicksbild Kopia av intagningsdatabasen Uppdateras 3 ggr per dag 07:15 – 12:15 – 15:15 Roller Skola, kommun Periodiseras.
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
Databaser & databasdesign
Wikinggruppen Presentation av ”WIKING SMS” – Effektivisera din verksamhet.
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Klicka på Aktivera redigering i meddelandefältet,
Access med Sebastian och Robert
HTML - grunder. Program •Html kan skrivas i anteckningar, eller vilket annat textbehandlingsprogram som helst. Mitt tips: Notepad ++ Notepad ++ •Grafiska.
E-post juni 2013.
Mjukvara och nätverk Vad är det?.
Lokala teknikmiljöer Utredning GEM-0001-A NUAK Jenny H Svensson, Projektledare.
Enkel dator teknik Tips och tricks.
Funktioner och programorganisation
Instruktioner Vilken grupp av frågor känner du att du instämmer mest med? Instämmer du i hög grad med de första 10 frågorna är din självkänsla lägre.
Funktionen SA10-Grupper. Följande typer av grupper finns: - Grupp i kurs hör alltid ihop med en kurskod - Grupp i program hör alltid ihop med en programkod.
DCV Idéskiss Design Jag tror att jag ska ha en mörk och stilren design på mitt DCV. Det ska finnas dynamisk funktionalitet där designen byts utan att sidan.
Andreas Carlsson Barvefjord och Carlsson Datakraft AB Svarkråkev Värnamo Tel: Epost: Databasteknik 2.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Next previous Lite mer om CGI-programmering Innehåll Vad är CGI? Vad är Forms? Vad är Perl? Forms, CGI och Perl. Något om Cookies. Internetprogrammering.
Distribuerade filsystem
Databaser i B2KUNO Johan Eklund. Hur går jag vidare? Avancerade tillämpningar:  Analysera data  Generera information Utveckla följande färdigheter:
INFORMATIONSHANTERING Tips & råd av Anna Maria & Joakim
Mahmud Al Hakim Webmaster DAG 11 VT09 Mahmud Al Hakim
W EBMASTER DAG 11 HT08 Mahmud Al Hakim
WEBMASTER DAG 13 Mahmud Al Hakim
TIPS & RÅDAKUTEN av Lina och Johan. SÖKA, LAGRA och ÖVERFÖRA INFORMATION PÅ DATORN - SÅ KAN DU GÖRA!
Övning 1 Grundtjänster vid ÖHs datanät. Innehåll Under övningen skall du lära dig att Under övningen skall du lära dig att –Byta lösenord –Använda de.
1 ITK:P1 Föreläsning 5 Iteration, slumpning och arrayer DSV Peter Mozelius.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Programmering B PHP Lektion 1 Mahmud Al Hakim Folkuniversitetet
Programmering B PHP Lektion 2
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Tabeller.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
Exder EPC. Exder EPC Välkommen! I det här bildspelet går vi igenom hur man lägger upp nya artiklar samt skickar artikelinformation. Du bläddrar framåt.
DATABASHANTERING för programmerare Lektion 4 Mahmud Al Hakim
EKÄNGENS IF NÄRVAROREGISTRERING MEDLEMSHANTERING ADMINISTRATION.
Databashantering Do it Max-style!. SELECT SELECT vad FROM tabellnamn Exempel: ◦ SELECT * FROM stralin_max  * = Välj allt som finns i tabellen ◦ SELECT.
Flexicon – Din systempartner
Java servlets och databaskopplingar
Namnrum, räckvidd och rekursion Linda Mannila
Webbsidesutbildning Lennart Ek, Tel Stefan Fosseus,
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - DHCP (Dynamic Host Configuration Protocol)‏
BVForum - en genomgång för revisorer Sören Thuresson.
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
1 Registrering och uppladdning shp-filer för geotekniska undersökningsområden - startläge.
© Björn Hedin, NADA/KTH Sammanfattning 2D1522 Datorteknik och -kommunikation
DA7351 Programmering 1 Databas SQL Föreläsning 24.
Programmeringteknik Webbdelen 2. webbprogrammering Server Den dator som websidan ligger på Klient Dator som tittar på webbsidan med en webbläsare (t ex.
Enkel dator teknik Tips och tricks. Välja storlek och radavstånd Här väljer du storlek på texten vi vill att ni använder 14 p till rubriker och 12 p till.
 Object-Relational mapping  (aka O/RM, ORM, and O/R mapping)  Mappning av objekt och dess relationer till/från en relationsdatabas.
Från databas till Excel
Från databas till Excel
IT Fördjupning Jon Wide
IT Databas Göran Wiréen
Hej användare! Välkommen till nya mallar.
Presentationens avskrift:

© Björn Hedin, NADA/KTH Webbaserade informationssystem med PHP och MySQL 2D1522 Datorteknik och -kommunikation

© Björn Hedin, NADA/KTH Dagens föreläsning Syfte –Ge de praktiska kunskaper och färdigheter som krävs för att bygga webbaserade informationssystem med databaser. Mål –Lära er den viktigaste syntaxen i PHP. Variabler och tilldelning, villkor, loopar, funktioner, modularisering –Lära er hur databasteori kan appliceras praktiskt i ett informationssystem. –Lära er hur man kan göra sessioner, dvs hantera ett tillstånd såsom en shoppingvagn eller en inloggning. Hidden filelds, Cookies –Mailhantering via web. ”Gör din egen hotmail”

© Björn Hedin, NADA/KTH Dagens innehåll PHP-syntax Web och databaser Sessionshantering Mailhantering via web

© Björn Hedin, NADA/KTH PHP PHP är uppbyggt från grunden för att passa webben. Är ett så kallat ”server pages-språk”, dvs html-kod blandas med programkod. Fördelar –Stor spridning –Snabbt –Enkelt Nackdelar –Ganska ostrukturerat, om en funktion är användbar läggs den in. –Lite okompatibelt mellan olika versioner

© Björn Hedin, NADA/KTH PHP grunder För att kunna använda PHP på en webserver krävs att webservern är konfigurerad för detta –t.ex. pub.gt.kth.se och NADAs webserver, men troligen inte spray, geocities etc. Filnamnen ska sluta på.php Programkod omsluts av processinstruktionen <?php diverse programinstruktioner ?>

© Björn Hedin, NADA/KTH PHP grunder (2) En websida kan bestå av flera block html-kod och php-kod <?php a=17; print a; ?>

© Björn Hedin, NADA/KTH Variabler PHP har ingen ”strikt” datatypning. Variabler måste inte deklareras innan de används. Variabler föregås av $-tecken <?php $banan = 17; $gurka = ”Hej hopp i lingonskogen"; $myFloat = 14.1; print $banan; print $gurka; print $myfloat; ?>

© Björn Hedin, NADA/KTH Variabler från formulär fungerar som ”vanliga” variabler

© Björn Hedin, NADA/KTH och så här gjorde man ett formulär i html

© Björn Hedin, NADA/KTH Villkor med if-else

© Björn Hedin, NADA/KTH Block För att knyta samman flera satser till ett block, motsvarande BEGIN och END i Pascal används ”måsvingar” {}. Dessa fås på en mac genom att samtidigt trycka ner alt- shift-8 respektive alt-shift-9

© Björn Hedin, NADA/KTH Loopar med while Obs! Vanlig html-kod som genereras

© Björn Hedin, NADA/KTH Funktioner

© Björn Hedin, NADA/KTH Includes

© Björn Hedin, NADA/KTH Includes (2) Includes är lämpliga för att lägga funktioner som förekommer flera gånger. Det går även att lägga t.ex. variabler i ”config-filer” som återkommer i flera filer, t.ex. IP-adresser till andra datorer, databaslösenord etc. Includefilerna kan, till skillnad från html och php-filer, ligga var som helst i filstrukturen vilket kan vara både bra och dåligt ur säkerhetssynvinkel ( include ”/etc/passwd” )

© Björn Hedin, NADA/KTH Databaser och web PHP-syntax Web och databaser Sessionshantering Mailhantering via web

© Björn Hedin, NADA/KTH MySQL Gratis (open source) databashanterare till Unix och Windows ( utvecklat sv svenskt företag Fördelar –Gratis –Brett ”community support” –Mycket snabb Nackdelar –Klarar inte full SQL, i synnerhet inte vyer och ”nestled select statements” –Kan inte hantera rollbacks (dock finns vissa möjligheter i nyare versioner, men då påverkas prestanda negativt)

© Björn Hedin, NADA/KTH MySQL - logga in från terminalfönster DatabasanvändarnamnDatabasnamnSkriv databaslösen här

© Björn Hedin, NADA/KTH MySQL - Skapa en tabell TabellnamnKolumnnamnDatatyp

© Björn Hedin, NADA/KTH MySQL - Sätta in värden i en tabell TabellnamnVärde kolumn 1Värde kolumn 2

© Björn Hedin, NADA/KTH MySQL - selektera värden från en tabell Kolumnnamn

© Björn Hedin, NADA/KTH MySQL - uppdatera rader i en tabell

© Björn Hedin, NADA/KTH MySQL - ta bort rader från en tabell

© Björn Hedin, NADA/KTH MySQL - Se definitionen av en befintlig tabell

© Björn Hedin, NADA/KTH MySQL - Radera en tabell

© Björn Hedin, NADA/KTH MySQL - uppdatera värden i en tabell

© Björn Hedin, NADA/KTH MySQL från php Obs!!! Från och med nu skippar jag html- innehållet som ska vara före och efter php- blocken för att spara skärmutrymme!! !

© Björn Hedin, NADA/KTH INSERT och UPDATE Insert och update fungerar som select, fråntaget att satsen inte returnerar något ”result-set”, endast en eventuell statuskod.

© Björn Hedin, NADA/KTH Sessionshantering PHP-syntax Web och databaser Sessionshantering Mailhantering via web

© Björn Hedin, NADA/KTH Vad är en session Webben är i princip tillståndslös. Varje hämtning av en sida är oberoende av andra hämtningar. Ofta vill man dock ha en ”kontext”, där resultat av tidigare sidladdningar kan påverka framtida. En session skapar just en sådan kontext

© Björn Hedin, NADA/KTH Hur sessioner? Grundprincipen är enkel: –Se till att skaffa en unik identifierare som ska identifiera sessionen, en s.k. sessionsid. –Se till att denna sessionsid på något sätt är tillgänglig i alla script som ska utgöra sessionen, dvs att den på något sätt skickas med från klienten vid varje uppkoppling.

© Björn Hedin, NADA/KTH Hidden fields Den enklaste, och mest ursprungliga metoden är att lägga in denna sessionsid i ett dolt fält som fylls i i varje html-formulär som utgör sessionen.

© Björn Hedin, NADA/KTH Exempel hidden fields

© Björn Hedin, NADA/KTH Nackdelar med hidden fields Alla sidor i sessionen måste vara länkade till varandra genom formulär. –Om man vill ha en vanlig statisk sida någonstans under sessionen måste även den läggas inom ett formulär. –Om man går till en extern site försvinner sessionen. Kort och gott: Ganska bökigt.

© Björn Hedin, NADA/KTH Sessioner med Cookies Cookies är ett annat, bättre sätt att hantera sessioner. Varje server har rätt att lagra upp till 256 tecken på klientdatorn i en speciell cookiefile. Det som lagras är ett antal Oftast är det smartast att lagra endast en sessionsid på klienten, och sedan låta all övrig intressant information som servern kan vilja lagra ligga på servern i en databas där sessionsidn är ”primary key” för övrig data.

© Björn Hedin, NADA/KTH

© Björn Hedin, NADA/KTH Mer om cookies Namnkonflikter –Om det finns risk för namnkonflikter, dvs att man använder variabelnamn i cookies som även kanske används ”lokalt” går det att komma åt cookies via den globala arrayen HTTP_COOKIE_VARS echo "$HTTP_COOKIE_VARS[ ]"; Säkerhet –En server kan endast komma åt cookies som servern själv har satt.

© Björn Hedin, NADA/KTH Mer om cookies (2) Värdena på cookies för en viss webplats skickas med i http- headern varje gång en request görs. Från servern: Content-type: text/html Set-Cookie: foo=bar; path=/; expires Mon, 09-Dec :46:00 GMT Från klienten Content-type: text/html Cookie: foo=bar Om inget expire-date anges raderas cookien när webläsaren avslutas.

© Björn Hedin, NADA/KTH Mail PHP-syntax Web och databaser Sessionshantering Mailhantering via web

© Björn Hedin, NADA/KTH Mail i php Att skicka ett mail från ett php-program är enkelt. I sin enklaste form behövs en mottagaradress, en rubrikrad och en meddelandekropp

© Björn Hedin, NADA/KTH skicka webmail

© Björn Hedin, NADA/KTH Sammanfattning Databashantering är enkel i PHP. Grundprincipen är: –Skapa en uppkoppling mot en databas –Exekvera ett statement –Om det var ett select-statement så iterera över en resultatmängd (dvs loopa över alla rader som returneras). Sessioner behövs för att kunna hålla ett tillstånd bland en mängd websidor Hidden fields kan vara enkla ibland, men oftast är cookies bättre Mailhantering är mycket enkel via webben (dock något mer komplicerad för att läsa mail).

© Björn Hedin, NADA/KTH Referenser Cookies PHP MySQL