PHP
PHP introduktion Hvad er PHP? Alternativer til PHP Programmeringssprog til hjemmesider Hvor kører det i Client/Server miljø? Alternativer til PHP ASP, ASP.net, JSP mv. Hvorfor er Javascript ikke et direkte alternativ?
HTML kontra PHP Hvorfor lære PHP, når du kan HTML? PHP giver mange nye muligheder Hvad kan det/er det bedre til end HTML? Med PHP kan man benytte matematik Man kan kommunikere med brugeren Man kan kommunikere med databaser PHP kan kører løkker mv. PHP kan benytte variabler og arrays Og mange flere ting...
PHP til reelle ting Man kan bruge PHP til f.eks.: Gæstebog CMS system (styring af indhold på side / hel side) Shop system / indkøbsvogn Udregning af f.eks. karaktergennemsnit Spørgeskemaer Bookingsystem Kalender opgaver Bruger login Og meget mere...
Om at lære PHP For at lave noget fedt, skal man lære en masse grundting Ligesom man skal lære en masse ord, før man kan snakke et nyt sprog Først når grundtingene er lært, kommer sammenhængen for mange Dvs. har man svært ved at forstå det i starten, skal man bare hænge i, og så kommer det
WAMP og XAMPP Kører serverside, og skal derfor bruge server F.eks. eget domæne www.noget.dk Husk det skal være Linux/unix/php/mysql webhotel Ellers installerer virtuel server på computer Det er det vi kaldte et 1tier netværk Afinstaller IIS fra computer Installer f.eks. Wamp (MAC brugere: XAMPP) WAMP: www.wampserver.com/en/index.php MAC: www.apachefriends.org/en/xampp.html
Oprette sider i Dreamweaver til PHP Sider skal opsættes så det kører på server Dvs. sider kan ikke ligesom HTML testes på jeres computer med mindre der er 1 tier netværk. Normalt sættes det til at hænge sammen med hjemmeside Ved domæner skal filer uploades Dreamweaver kan upload filer eller du kan vi FTP program Dreamweaver kan drille og man kan ikke se om filen uploades successfult Vi prøver derfor at installere og bruge FTP program
FileZilla FTP = File Transfer Protocol Gratis FTP program Kender I til FTP programmer er det fint I bruger et andet også, bare I selv kender til det Bruges ved domæner Download: http://filezilla-project.org/ Vælg Client Vælg styresystem
Hvordan bruges PHP? PHP benyttes inde i HTML koden For at det virker skal filen hedde .php Det skal kører via server eller virtuel server (wamp / xampp) Ultra grundlæggende PHP? PHP startes og sluttes altid ved brug <?php PHP kode ligger her ?> <? PHP kode ligger her ?> Kommentarer i PHP skrives med // eller /* */ (og #) Funktionen echo udskriver ting i HTML PHP eksempel 1
Verdens kedeligste eksempel Et eksempel på hvordan PHP udskriver sætningen ”Hello World” PHP eksempel 2 Læg mærke til: Når filen køres, kan PHP ikke ses Automatisk ”lavet om” til HTML Vises det sted hvor scriptet står
PHP variabler Med variabler kan man gemme ting der bruges på samme side Variabler har $ tegn foran Strenge (alle tegn) skrives i ”” og tal skrives uden (for at kunne regne) En variabel kan indeholde en anden variabel Eksempel på gemt tekst i variabel som udskrives $min_variabel = ”Den gemte tekst”; echo $min_variabel; Eksempel på gemt tal variabel som udskrives $min_variabel = 230; echo $min_variabel; Eksempel på variabel med variabel i $pris = 150; $pris_m_tekst = ”Prisen er $pris”; PHP eksempel 3
Matematik med PHP I PHP kan du også regne Bruges f.eks. til gennemsnit, tidsberegning, visninger, shopping cart mv. Eksempel med plus, minus, gange og divider $tal1 = 10; $tal2 = 5; $tal_plus = $tal1 + $tal2; $tal_minus = $tal1 - $tal2; $tal_gange = $tal1 * $tal2; $tal_divider = $tal1 / $tal2; Sammenkædning af strenge og variabler mv. Benyt . (punktum) PHP Eksempel 4
Simpel opgave - 1-2 pers Lav en side der: Mål med opgave Benytter variabler Benytter matematik Udskriver noget Med kommentarer om hvad det gør Ved der ikke kan laves det store revoulutionerende, men lad prøv for at forstå måden tingene bruges på Mål med opgave Forstå princippet Forstå hvor i HTML det sættes ind Lær basis PHP
Modtage ting fra forms I PHP kan du modtage ting sendt fra en form Du laver en HTML side med en form Du henviser den til PHP filen du laver I PHP filen kan du hente værdier og gemme dem i variabler Hentes med $_POST[”navn_på_felt”]; Gemmes i variabel sådan her: $felt_1 = $_POST[”felt_1”]; Det som står i POST skal matche navnet på feltet. Variablen navngives helt frit PHP eksempel 5 og HTML eksempel 5
If....else If... Else kan tjekke noget, og udføre en ting afhængigt af om det er sandt eller ej Eksempel på hvordan der tjekkes om en karakter er bestået Sætningen er sådan: if (noget == noget) { gør noget } 2 lighedstegn tjekker om de er ens. Havde der været et havde den sat første værdi lig med den anden Andre ting der kan bruges: != er ikke-lig-med < er mindre end > er større end mv. PHP eksempel 6
Mini opgave 1-3 personer Lav en mini lommeregner Man skriver 2 tal Man vælger om den skal gange, plusse, minusse eller dividere Man klikker beregn, og den viser en ny side med regnstykket og resultatet. Husk at lav en helt ny side i Dreamweaver kaldet lommeregner Til denne opgave bruges de ting vi har lært Der vil som udgangspunkt ikke være hjælp fra mig, før hele gruppen sidder uhjælpeligt fast Til dem der er hurtige færdige, prøv at udbygge eksemplet
SESSIONS Hvad er session? Bruges til: Ligesom en variabel Kan bruges henover flere sider Bruges til: F.eks. Indkøbsogn At tjekke om man er logget ind Mv.
SESSIONS Hvordan bruges den? PHP eksempel 14 og 14_2 Starten af alle sider der beytter den: session_start(); Gem i sessions $_SESSION[”session_navn”] = 10; Brug sessions Bruges som variabler blot med $_SESSION[””]; Slet sessions session_unregister[”session_navn”]; //sletter en Session_unset(); // Sletter alle session_destroy(); // Sletter session data fra computer PHP eksempel 14 og 14_2
Opgave 1-2 pers Lav 2 filer f.eks. Send_session.php og modtag_sesseion.php I send filen starter du sessions, og gemmer nogle Herefter laver du et normalt link til modtag filen I modtag filen udskriver du de sessions du har sendt med Herefter sletter du en og udskriver igen Herefter sletter du alle og destroyer session
While løkker En while løkke kører så længe betingelsen er sand Anvendes ofte sammen med databaser While(betingelse) { // Gør noget } PHP eksempel 9
Hvad er en database? En samling af struktureret data, som kan opstilles i tabelform Eksempler på databaser: Kundedatabase Telefonbog Adressekartotek Produktdatabase O.m.m.
Hvad er en database? En database består af: Eksempel Tabeller Felter Værdier Eksempel Tabel: Selandia_laerere Felter: Navn, email Værdier: Kim, kmre@selandia-ceu.dk
PHP og databaser For at oprette databaser og lave manuelle ændringer, benyttes PHPMyAdmin Et system til at styre databaser, tabeller osv. med PHP kommunikere sammen med databaser ved hjælp af SQL (MySQL database) SQL er et ”kodesprog” man bruger til at lave forespørgsler SQL betyder Structered Query Language SQL benyttes i PHP funktioner
PHPMyAdmin Log ind på PHPMyAdmin allesammen Kort gennemgang Opret database (hvis man kan hos udbyder) Opret tabel Opret felter og de vigtigste felters type Id felt, auto number Interger Varchar Char Text Opret værdier i felterne Export og import Vær opmærksom på: Mange forskellige versioner – kan variere lidt
Individuel opgave Opret en database i PHPMyAdmin kaldet "PHP-undervisning" Opret en tabel kaldet "elever" Opret felterne "id", "Navn", "Adresse", "Postnr", "Bynavn", "Tlf" og "Email" Indsæt nogle personer i den - min. 10 stk VIGTIGT: Denne skal bruges senere
Mini SQL kursus Simple grundkommandoer Næsten ligesom at skrive engelsk Bruges sammen med PHP's egne funktioner Mange muligheder Vi gennemgår basis og lidt mere Referencer til viderestudering
SQL – udtræk fra database Eksempler på udtræk: SELECT * FROM elever WHERE navn='Jens' SELECT * FROM elever WHERE navn LIKE '%Jens%' SELECT navn, klasse FROM elever SELECT * FROM elever ORDER BY klasse DESC SELECT * FROM elever ORDER BY klasse ASC SELECT * FROM elever WHERE navn='Jens' AND klasse='7b' SELECT * FROM elever WHERE klasse='7a' OR klasse='7b' Sammensæt dem: SELECT navn, alder, klasse FROM elever WHERE navn LIKE '%Jens%' AND klasse = '7b' ORDER BY klasse DESC
SQL – Insæt i en database Vi leger vi har en elev tabel med kun 3 felter (nemmere at vise) - id, navn og tlfnr Eksempler på indsæt INSERT INTO elever VALUES ('', 'Kim', '31610512') INSERT INTO elever (navn, tlfnr) VALUES ('Kim', '31610512')
SQL – Opdater i en database Eksempler på update UPDATE elever SET navn = 'Kim R' WHERE tlfnr = '31610512' UPDATE elever SET tlfnr = '31510512' WHERE tlfnr = '31610512' UPDATE elever SET tlfnr = '31510512' WHERE navn = 'Kim R' UPDATE elever SET tlfnr = '31510512', navn = 'Kim' WHERE navn = 'Kim R'
SQL – Slet fra en database Eksempler på slet DELETE FROM elever WHERE navn = 'Kim' DELETE FROM elever WHERE tlfnr = '31610512' DELETE FROM elever WHERE id = '2' TRUNCATE TABLE elever Tabel elever bliver der men er tom
Brug PHPMyAdmin som hjælp Når man benytter PHPMyAdmin kan man se SQL sætningen efter Bliver man i tvivl om en sætning kan man derfor udfører det der, og se sætningen den genererer
Avanceret SQL Følgende er hjemmelæsning men er også en del af pensum (næste side kan ses hvor det findes) INNER JOIN = Hent fra flere tabeller LEFT JOIN = Hent fra flere tabeller RIGHT JOIN = Hent fra flere tabeller FULL JOIN = Hent fra flere tabeller DISTINCT = Hent ikke duplikerede værdier
Lær mere om SQL Her kan du se de avanceret ting Google søgning på SQL http://www.w3schools.com/sql/ Se menuen til venstre Google søgning på SQL Millioner af sider
Connect til en database i PHP $database = mysql_connect("server", "brugernavn", "password") or die("Server, bruger eller pass er forkert"); Server: Ofte localhost ellers tjek med udbyder Brugernavn: Fået af udbyder Password: Fået af udbyder Die udskriver fejlmeddelelse
Connect til en database i PHP Vælg den database du skal bruge mysql_select_db("databasenavn", $variabel_med_dbconnection) or die("Kunne ikke finde database"); Databasenavn: Det du eller din udbyder har kaldt din database Variabel: Den vi oprettede før som vi kaldte $database (med navn, brugernavn og password) Die laver fejl hvis den ikke kan
Include og require funktion Database connectionen inkludere man som regel på side hvor det skal bruges Ny funktion: include("side"); Et sted i en PHP kan en anden inkluderes: include("database_connection.php"); Bruges ved sider i designs osv. Alternativ: require("database_connection.php"); Gemmes imodsætning til include i cachen Bruges ved database connections
Individuel opgave Lav en connection fil Skal connecte til databasen hvor elever tabellen er Lav en php side hvor connection filen bliver required Kør filen på server og se om der er fejl PHP Eksempel DB 1
Hent fra database I PHP dokumentet husker man at inkludere filen med database connection Kør SQL forespørgslen: $db_elever = mysql_query("SELECT * FROM elever");
Få fat i den første post I PHP dokumentet husker man at inkludere filen med database connection Kør SQL forespørgslen: $db_elever = mysql_query("SELECT * FROM elever"); $data = mysql_fetch_array($db_elever ) data[0] = id, data[1] = navn osv
Gennemgå tabelposterne Gennemgå og udskriv det der er hentet med forespørgslen A la man gjorde det med et array med foreach while($data = mysql_fetch_array($db_elever )) { echo $data[0]; //navn hvis det er 1. felt echo $data[1]; //Adresse hvis det er 2. felt // osv osv osv } // kører igennem så længe der er poster PHP eksempel DB 2
Individuel opgave Prøv at lave en PHP fil, hvor du henter og udskriver data fra den elev tabel vi tidligere har lavet Data skal udskrives sådan på hver linje Navn, Adresse, Postnr, Bynavn, Tlf, Email
Opdater tabelposter I PHP dokumentet husker man at inkludere filen med database connection Kør SQL forespørgslen: $db_elever = mysql_query("UPDATE elever SET navn = 'Kim Revsbæk' WHERE navn = 'Kim'"); Hvis det f.eks. Var modtaget fra en form kunne man $nyt_navn = $_POST["navn"]; $db_elever = mysql_query("UPDATE elever SET navn = $nyt_navn' WHERE navn = 'Kim'"); PHP eksempel db 3
Individuel opgave Prøv at lave en PHP fil, hvor du opdaterer noget i elev tabellen med nye oplysninger Hvis du har mod på det, kan den opdatere tabellen med oplysninger man har indtastet i en form. Men ellers er det fint at lave fiktive oplysninger.
Slet tabelposter I PHP dokumentet husker man at inkludere filen med database connection Kør SQL forespørgslen: $db_elever = mysql_query("DELETE FROM elever WHERE navn = 'Kim'"); Hvis det f.eks. Var et punkt en bruger havde valgt kunne id været sendt med i adressen $slet_id = $_GET["id"]; $db_elever = mysql_query(" DELETE FROM elever WHERE id = ' $slet_id ' "); PHP eksempel db 4
Individuel opgave Prøv via en PHP fil at slette en elev fra tabellen elever Prøv f.eks. at slette en elev hvor id er = med noget bestemt Prøv evt også at slette alle elever der bor i et bestemt postnr
Opret nye poster i databasen I PHP dokumentet husker man at inkludere filen med database connection Kør SQL forespørgslen: $db_elever = mysql_query("INSERT INTO elever VALUES ('', 'Kim', 'vejnavn 17', '4200', 'Slagelse', '31610512', 'mmd@techshop.dk') "); Alle disse ting kunne selvfølgelig også være kommet fra f.eks. En formular PHP eksempel db 5
Individuel opgave Prøv via en PHP fil at oprette en eller flere nye elever i tabellen elever
Opgave - 2 pers grupper Ikke samme grupper som sidst Opgave udleveres på papir ved siden af Generelt - lav en side hvor man kan oprette, redigere og slette elever fra jeres tabel