Projektledning, Business Knowledge Användbarhet & Layout Avancerade Webbteknologier Lkti Lektion 1 Kommunikation Tobias Landén tobias.landen@chas.se Avancerade webbteknologier del 1 (4 KY poäng) Syfte Avancerade webbteknologier syftar till att ge studenten mycket god kunskap och färdighet inom området dynamiska webbplatser. Avancerade webbteknologier behandlar tre tekniker; PHP, JAVA och Struts, Ruby on Rails. Första delen i Avancerade webbteknologier ska ge studenten goda teoretiska och praktiska kunskaper om hur man skapar dynamiska webbapplikationer med hjälp av tekniken PHP. Mål Efter avslutad kurs ska studenten: kunna redogöra för vanliga begrepp inom webbprogrammering och förstå skillnaderna mellan baserad och klientbaserad programmering kunna installation en webb och ha förståelse för hur säkerheten hanteras i n kunna grunderna i PHP programmering kunna framställa och underhålla dynamiska webbplatser, med fokus på baserade metoder kunna använda sig av en befintlig databas för att hämta och lagra information som används av en dynamisk webbplats kunna använda JavaScript och PHP för att skapa interaktivt webbinnehåll kunna planera och genomföra skapandet av en dynamisk webbplats Kursupplägg Examinationsform Inlämningsuppgift Kurstyp Obligatorisk Betygsgrader IG, G och VG 50% krävs för Godkänt, 75% krävs för Väl godkänt 1
Litteratur Vi kommer använda boken Learning PHP and : Step by Step Guide to Creating Database Driven Web Sites. Jag kommer ge lästips i den boken men det är okej att använda en annan bok om man känner för det. Om man pratar med mig personligen kan jag även ge anpassade tips för vad just nu behöver. Dag Måndag Tisdag Onsdag Torsdag Fredag Vecka 1 Innehåll Introduktion till kursen Introduktion till Webbprogrammering, PHP och PHP fördjupning: Funktioner, Arrayer, Formulär PHP fördjupning: Sessions, Cookies, Säkerhet Egenstudier (läsläxa + uppgift) Egenstudier (läsläxa + uppgift) Vecka 2 Idag Vecka två planeras upp baserat på hur vecka 1 fungerar. Det vi kommer stämma av under vecka 1 är: Förkunskaper Tempo Upplägg Introduktion till kursen Introduktion till webbutveckling Introduktion till PHP OSI Modellen Datorkommunikation 2
Client PHP DNS PHP PHP Användaren matar in en adress i adressfältet: www.google.com En förfrågan skickas ut till en DNS som talar om på vilket IP www.google.com finns. PHP PHP Nu vet n var www.google.com finns och skickar en förfrågan till n om att få komma åt den sidan. n får in förfrågan att användaren vill ha sidan www.google.com och märker att detta är en webbsida (genom port 80) och skickar vidare förfrågan till som är en webb. 3
PHP PHP har en inställning som säger att www.google.com ska vida sidan www.google.com/index.php. märker att det är en PHP fil som efterfrågas och skickar den till PHP n för att tolka och genomföra koden i den. PHP PHP PHP n genomför all kod i dokumentet. Uppifrån och ner. Om PHP koden behöver koppla upp till databasen gör PHP n det. I den kopplingen kan PHP skicka SQL frågor. Databasen skickar då tillbaks ett svar med data till PHP. PHP PHP Under körningen av PHP koden skapas det slutgiltiga dokumentet utan PHP kod som ska tillbaks till användaren. Till exempel XHTML eller XML. PHP skickar det slutgiltiga dokumentet till. har koll på vem som ska ha dokumentet och skickar det som svar till användaren. 4
Termer PHP PHP en tar emot dokumentet och hanterar det i till exempel webbläsaren. Programvaror Windows PuTTy winscp Notepad++ Linux Beror lite på distro men ofta räcker shell + en editor samt eventuellt ett sftp program Grunderna i PHP Mac Valfritt ftp program som kan föra sftp. Samt en bra texteditor. Hur PHP körs Hur PHP körs PHP Dokument PHP Dokument Inkluderat PHP Dokument 5
Skriva ut saker på skärmen echo är en funktion som skriver ut saker till användaren. Den kan skriva ut all form av text även HTML och CSS Variabler En variabel är en box som man kan lagra information i Variabelnamn startar alltid med $ i PHP echo Hej! ; echo Hej ; $x = 1; Lagrar 1 i variabeln/boxen $x $x = Tobbe ; Lagrar Tobbe i $x $X Arrayer Om en variabel är en box är en Array en samling av boxar $min_array är samlingsboxen [ apa ] är en box i samlingsboxen $min_array[ apa ] syftar på boxen apa $min_array apa test 1 2 3 $förnamn $efternamn $telefonnummer $förnamn2 $efternamn2 $telefonnummer2 $person[ förnamn ] $person[ efternamn ] $person[ telefonnummer ] $person[1][ förnamn ] $person[1] [ efternamn ] $person[1] [ telefonnummer ] $person2[ förnamn ] $person2[ efternamn ] $person2[ telefonnummer ] $person[2] [ förnamn ] $person[2] [ efternamn ] $person[2] [ telefonnummer ] 6
Jobba med variabler och utskrifter Villkor $namn = Tobbe ; echo Hej $namn ; echo Hej $namn ; echo Hej. $namn; echo Hej. $namn; //sätter $namn till Tobbe //Skriver ut: Hej Tobbe //Skriver ut: Hej $namn //Skriver ut: Hej Tobbe //Skriver ut: Hej Tobbe Kör en bit av koden om ett villkor uppfylls if($namn == Tobbe ){ /* Här lägger vi kod som vi vill köra om variabeln $namn innehåller Tobbe */ elseif($namn == Pelle ){ echo $förnamn $efternamn ; echo $förnamn.. $efternamn; echo $person[ förnamn ] ; echo {$person[ förnamn ] ; //Ger ofta error //GeFungerar bättre else{ if($namn == Tobbe OR $namn == Pelle ){ if($namn == Tobbe ){ if($namn == Pelle ){ Switch if($mysql_error == true){ elseif($php_error == true){ else{ switch($namn){ case tobbe : break; case pelle : default: 7
$namn = Pelle ; Vad gör koden? if($namn == Tobbe ){ echo Hej Tobbe ; else{ echo Du ska inte vara här ; Skapa en ny PHP sida Skapa en variabel som heter djur. Spara värdet Kanin i variabeln Kolla med ett villkor om variabeln djur innehåller värdet Apa. Om den gör det ska koden skriva ut texten: Har du en apa? Lösning $djur = Kanin ; if($djur == Apa ){ echo Har du en apa? ; $djur = Kanin ; switch($djur){ case Apa : echo Har du en apa? ; Loopar En loop snurrar runt en bit av koden tills ett villkor uppfylls $x = 0; while($x < 10){ $x = $x+1; $x = 10; while($x > 10){ echo Hej ; Vad gör koden? $x = 11; do{ echo Hej ; while($x<10); Vad gör koden? 8
for($i=0;$i<=10;$i++){ echo $i; for loop Skapa en ny PHP sida Gör en loop som skriver ut alla talen från 1 till 1000 på skärmen Skapa en ny PHP sida Gör en loop som skriver ut alla jämna tal mellan 100 och 0på skärmen. for($i=1;$i<=1000;$i++){ echo $i; Lösningar Skapa en php sida som genererar en sida likt bilden nedan: for($i=100;$i>=0;$i=$i 2){ echo $i; Bygg om förra uppgiften så den istället ser ut såhär: Hämta in information från användaren GET Information som hämtas från adressfältet. Oftast länkar. POST Information som hämtas från POST data som skickas med förfrågan till n. Oftast formulär. 9
GET Hämta in från adressfältet GET Plockar variabler från webbadressen. Allt efter? Är GET information http://www.mittforum.se/index.php?page=1&user=3 /index php?page=1&user=3 $_GET[ page ] kommer ha värdet 1i PHP $_GET[ user ] kommer ha värdet 3i PHP Skapa en ny PHP sida Gör ett villkor som skriver ut informationen som kommer in via GET variabeln ibl namn Om namn är lika med ditt eget namn ska koden skriva ut: Det är ju jag! POST Tar emot ett HTML formulär som postats till PHP sidan. <form action= welcome welcome.php php method= post > <input type= text name= förnamn /> <input type= text name= efternamn /> <input type= submit value= Skicka /> </form> Vad gör koden? Det formuläret tas emot genom: $_POST[ förnamn ] $_POST[ efternamn ] $namn = $_POST[ förnamn ].. $_POST[ efternamn ]; echo Välkommen $namn! 10
Vad gör koden? If($_POST[ förnamn ] == Tobbe ){ echo Grymt bra namn du har! ; $namn = $_POST[ förnamn ].. $_POST[ efternamn ]; echo Välkommen $namn! Skapa två olika PHP sidor En som heter form.php och en som heter kontroll.php I form.php ska det finnas ett formulär där man får fylla i namn och telefonnummer form.php ska skicka användaren vidare till kontroll.php när man klickar på skicka knappen. I filen kontroll.php ska man se vilket namn och telefonnummer som man fyllde i iformuläret. Labboration Skapa en ny PHP sida. I början av filen deklarerar du en array i stil med denna: array( start => Välkommen till startsidan!, om oss => Härfinnsinformation information om oss ) Skapa PHP kod som skriver ut nycklarna i arrayen i en punktlista. Länkavarje punkt i listan så att om man klickar på den laddas sidan om och texten för den positionen i arrayen syns. Tips: Använd GET 11