Viikkotehtävä 8 ja templatet - Luento 18

Käsitellään edellinen viikkotehtävä ja tutkitaan PHP:n template-mahdollisuuksia. Pohditaan millä tavalla kaikille sivuistoille yhteiset osat voidaan koota yhteen paikkaan. Käydään läpi perusteita PHP:n tietoturvasta.

Luentotaltiointi

Ongelmia videon katselussa?

Viikkotehtävä 8

Huomioita:

DOM ja namespacet

DOMDocument->getElementsByTagNameNS

Templatet

Yhtenäisen sivusto eri sivuilla on usein samankaltaisia osia, jotka joudutaan jokaisella sivulla liittämään includella tai copy&pastella jokaiselle sivulle. Näitä osia ovat esimerkiksi navigoinnit ja autentikoinnista huolehtiminen. Entäpä jos joltain sivulta tärkeitä käyttäjätarkistus unohtuukin?

Templateilla (eli sivupohjilla) saavutetaan seuraavia etuja:

Template-esimerkki

Tehdään users.jyu.fi:ssä toimiva template-esimerkki ilman erilliskirjastoja käyttäen Apache handlereita:

Template-ongelmia

Alikansioissa sijaitsevien dokumenttien käsittely pitää tehdä seuraavalla tavalla tai toinen vaihtoehto on kirjoittaa käsittelijään kaikki tiedostoviittaukset absoluuttisilla poluilla ja aina siirtyä käsiteltävän tiedoston kansioon.



// polku käsiteltävään tiedostoon
$file = $_SERVER["PATH_TRANSLATED"];
// oletuspolku (käsittelijän polku)
$sijainti = getcwd();

// suhteellinen polku käsiteltävään _kansioon_
$suhtpolku = ereg_replace("/home(.*)/html/", "../", $file);

// siirrytään kansioon ennen tiedoston käsittelyä
// koska muuten kaikki suhteelliset operaatiot
// toimivat väärin
chdir($suhtpolku);
include($file);
// palataan oletuspaikkaan
chdir($sijainti);
// oletuspaikkaan ei tarvi palata jos käsittelijän omat
// tiedosto-operaatiot tehdään absoluuttisilla poluilla
// vrt "pohja.xml" vs. "/omaHOMEpolku/html/sovellukset/handlers/pohja.xml"

Huomaa kuitenkin, että sivun Javascript-viitteet toimivat normaalisti suhteessa selaimen pyytämään hakemistoon, koska Javascript-tiedostojen haku tapahtuu selaimen toimesta.

Jos template ei toimi XHTML-tiedostojen kanssa, niin vika piilee luultavasti XHTML-dokumenttien xml-deklaraatioissa joita php-tulkki kuvittelee php:ksi. Käytä siis readfile-funktiota html-tiedostoille include-funktion sijaan. toinen vaihtoehto on laittaa .htaccessiin rivi:

php_flag short_open_tag off

Ei voida asettaa valitettavasti users.jyu.fi:ssä, antaa Server Erroria.

Valmiita template-järjestelmiä

PHP:lle on kirjoitettu useita valmiita template-järjestelmiä, jotka helpottavat sivuston luomista ja ylläpitoa. Kts.

Lisätietoa

Välimuistit

Välimuistit ovat väliaikaista tallennustilaa, johon WWW-sivu tallennetaan ja josta se voidaan uudelleen ladata. Välimuisteista on hyötyä, koska ne

Välimuisteja voidaan hyödyntää seuraavasti

Cache-esimerkkejä

Templatet cachetuksella:

Lisätietoa

Tietoturva

Muutamia käytännön perustietoturvapointteja:

Lisätietoa:

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/sovellukset/luennot/luento18/
© Jukka Mäntylä (jmantyla@mit.jyu.fi) <http://www.iki.fi/jmantyla/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Antti Ekonoja (anjoekon@jyu.fi) <http://users.jyu.fi/~anjoekon/>
2007-04-27 12:17:51