PHP ja sessionhallinta Verkkotekniikan jatkokurssi Kevät 2003 V. Seppänen

Slides:



Advertisements
Samankaltaiset esitykset
Marratech Käyttöohjeita. Ellei bookmarks –listassa ole haluttua palvelinta, osoitteen voi kirjoittaa suoraan osoiteriville:
Advertisements

ENTERPRISE SEARCH Toteutustekniikka Mikko Uusitalo Tampereen ammattikorkeakoulu.
Hakukoneet Kotimaiset hakukoneetPortaalit Ulkomaisia hakukoneitaMetahakukoneet.
Suorita menulta voit ottaa yhteyden iSeries:iin tai katkaista yhteyden sinne ja poistua RI400:sta.
AT-STARTTI OPPILAAN OPETUSVERKON JA INTRAN PERUSTOIMINTOJA.
Moodlen ohje opiskelijoille
Wikispace jatkokurssi Jarmo Heikkinen Karoliina Kemppainen Satu Kylmänen.
Tech days ● 2010 Finland. tech days ● 2010 Finland.
© 2010 IBM Corporation1 Bannerikaruselli  Bannerikaruselli on sisällönhallinnan komponentti, jolla voidaan laittaa www-sivulla haluttuun kohtaan näkymään.
JavaScript (c) Irja & Reino Aarinen, 2007
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö Netbeans ja XAMPP Projektin luominen.
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Carita, Kati ja Juuso OSAO Myllytulli ja Mytlpt09E 2010
Ubuntuun LAMP server sekä Samba tiedostonjako palvelu.
W w w. h a m k. f i Wiki koulutus Leenakaija Lehto
Taulukoiden määrittely, käsittely ja kopiointi Vaihtoehdot taulukoille
Lisämuotoiluja: Tässä esityksessä tutustutaan Wordin lisämuotoiluihin, kuten sarkaimiin, sivunumerointiin, ylä- ja alatunnisteisiin sekä palstoituksen.
Rakenteinen ohjelmointi
Power Point – esitysgrafiikkaohjelma lyhyesti
Valitse sanomapalkissa Ota muokkaus käyttöön,
Valitse sanomapalkissa Ota muokkaus käyttöön,
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
Internet-viestintä on helppoa! Käyttökuvaus 4.0
Auli Jaakkola 1 Palkkatiedustelun tietomallin mukaisen tilastovastauksen luonti Tässä esimerkissä tiedosto tuotetaan excelistä csv-muotoon. 1.Oletetaan,
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
HTTP-protokollatMyn1 HTTP-protokolla HTTP (HyperText Transfer Protocol) on web-asiakkaan ja –palvelimen keskinäiseen tiedonsiirtoon käyttämä yhteyskäytäntö.
Sähköinen portfolio - kyvyt.fi
Map-luokka Mikä Map on? Mapin esittely ja luonti Map-luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen 1.
Erilaiset liitokset FROM-osassa voidaan määritellä relaatio myös erilaisia liitosoperaatioita käyttäen Vasen, oikea ja täysi puoliliitos eli ulkoliitos.
PowerPoint-esitys OHJE.
AT-STARTTI OPPILAAN OPETUSVERKON JA INTRAN PERUSTOIMINTOJA.
vuorovaikutteiset www-sivut1 Palvelinpuolen www- ohjelmointi Dynaaminen Internet  käyttäjän tai selaimen tunnistaminen  käyttäjän toiveiden.
Tietotyypit Tietotyyppi määrittää muuttujan sisältämän datan luonnetta, muistista tarvittavaa tilaa ja sitä, millaisia operaatioita siihen voidaan kohdistaa.
Ville Seppänen PHP osa 1 Verkkotekniikan jatkokurssi Kevät 2003 Ville Seppänen
Muuttujat ja vakiottMyn1 Muuttujat ja vakiot PHP-kielen syntaksi on lainattu suurimmaksi osaksi C- kielestä. PHP on erityisesti HTML-dokumenttien sisään.
JohdantotMyn1 Johdanto Verkkopalvelun koostamiseen käytetään koosteohjelmia ja ohjelmointikieliä. Verkkopalvelun toteutus voi vaatia myös palvelinohjelmointia.
Osaamisen ja sivistyksen parhaaksi AIKIS -hanke Teknisen toimivuuden määrittelyt Keskustelun pohjaksi
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Lomakkeet © Reiska, Lomakkeet Varsinkin Web-sovelluksia ajetaan täyttämällä sivulla lomake ja lähettämällä tiedot palvelimella olevan Web-sovelluksen.
JYVÄSKYLÄN YLIOPISTO Kesäkoulun tuntiopetus Opettajat palauttavat allekirjoitetun palkkiolaskulomakkeen Satu Lassilalle tarkastettavaksi. Satu Lassila.
JavaStation haastaa PC:n oppilaitoksissa Pasi Häkkinen TTKK/DMI/Hypermedialaboratorio Multimedian monet muodot, Tampere-talo.
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
Rinnakkaisuus Järjestelmässä, jossa voi olla useita prosesseja rinnakkain suorituksessa voi tulla tilanteita, joissa prosessien suoritusta täytyy kontrolloida.
FunktiottMyn1 Funktiot Funktiot voidaan jakaa –Kirjastofunktioihin, jotka ovat valmiina kaikkien käytössä. Erikoisempien kirjastofunktioiden käyttöönotto.
XSL & JavaScript Teppo Räisänen
Tiesitkö ?? Oodilla on kaksi tukipuhelinnumeroa ja kaksi sähköpostiosoitetta WinOodi -asiat: Puh WebOodi -asiat:
HTTP (c) Reino Aarinen, HTTP yhteyskäytäntö Web asiakasohjelmat (yleensä erilaiset selaimet) käyttävät HTTP protokollaa tiedon siirtoon WWW sivustojen.
Tiedon vieminen funktiolle tMyn1 Tiedon vieminen funktiolle, parametrit Argumentin vieminen funktiolle voidaan toteuttaa kahdella menetelmällä: –Pass-by-Value.
PHP Asiakkaan ja palvelimen välinen tiedon virtaus eri ”tiloissa” (http (esim. lomake), istunto, eväste, tietovarasto)
LDAP Lightweight Directory Access Protocol. LDAP ja sen rakenne Hakemistopalvelujen käyttöön suunniteltu protokolla Hakemistopalvelu on esim. autentikointitietoja.
Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas).NET-palvelutoteutus: CoreServiceDemo PlugIT-loppuseminaari Koulutustyöpaja 1: Avoimet ohjelmistorajapinnat.
Listat eli luettelot listaelementit ovat lohkoelementtejä:  lista ja listan alkiot alkavat uudelta riviltä  listan jälkeen tuleva elementti alkaa uudelta.
Ohjausrakenteet Määräävät ohjelmakoodin suoritusjärjestyksen Ehtolause if – else on muotoa if (lauseke) lause1 else lause2 Jos lauseke on tosi, niin suoritetaan.
MapInfon tiedostot TAB – Tiedosto, jonka avulla tietokanta avataan MapInfossa. Tiedostossa tietoja kentistä ja koordinaattijärjestelmästä. DAT, XLS. TXT.
WWW-palvelin Apache HTTP Server. Yleistä Siirtää HTTP-protokollaa käyttäen pyydetyt tiedostot Internetin välityksellä Portti 80 varattu HTTP-protokollalle.
PHP Muuttujien määrittely, sijoituslause ja aritmeettiset operaattorit Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö.
Toistorakenne Toistorakennetta käytetään ohjelmissa sellaisissa tilanteissa, joissa jotain tiettyä ohjelmassa tapahtuvaa toimenpidekokonaisuutta halutaan.
Turvallinen PHP-ohjelmointi Kohdat joihin tulee kiinnittää erityistä huomiota: Käyttäjän syöttötiedot Ohjelmistojen haavoittuvuudet Näkyvyys julkisuuteen:
Monadeja siellä, monadeja täällä... monadeja kaikkialla?
Scala Collections.
PaikkaOppi Mobiilin käyttöohje
Web-sovellusten kehittäminen - Johdanto
JavaScriptin perusteet
Istuntojen hallinta PHP-sovelluksessa
Jouni Juntunen Oulun seudun ammattikorkeakoulu Liiketalouden yksikkö
7. Näytölle tulostaminen
Opintopolku-info
4. Luokan testaus ja käyttö olion kautta
Esityksen transkriptio:

PHP ja sessionhallinta Verkkotekniikan jatkokurssi Kevät 2003 V. Seppänen

Tilattomuus • HTTP on tilaton protokolla  Palvelin ei säilytä tietoa saman asiakkaan tekemistä pyynnöistä, eikä yhdistä peräkkäisiä pyyntöjä toisiinsa  Malli soveltuu perinteiseen surffailuun, mutta web-sovelluksia on hankala tai mahdoton toteuttaa sarjana toisistaan riippumattomia sivuja

Tilattomuus, 2 • PHP-skriptin suorituksen päättyessä käytetyt muuttujat ‘katoavat’ • Toistaiseksi demoissa ongelma on kierretty välittämällä tarvittavat muuttujat sivulta toiselle GET-pyynnöissä (vrt. ‘seuraavat 5’). Ei kuitenkaan täysin ongelmaton käytäntö. Miksi? • Vastaus ongelmiin: HTTP-sessiot (istunnot)

Sessionhallinta PHP:lla • Ajatus  Loogisesti yhteenkuuluvat sivupyynnöt kuuluvat samaan istuntoon. Voidaan ylläpitää tietoa siitä, mitä pyyntöjä ja vastauksia asiakkaan ja palvelimen välillä on liikkunut  Loogisesti yhteenkuuluvat sivut muodostavat kokonaisuuden ja ovat tietoisia toistensa tekemisistä yhteisten muuttujien kautta  Muuttujat säilyvät istunnon keston ajan

Sessionhallinta PHP:lla, 2 • PHP:ssa istunto käynnistetään funktiolla session_start(), joka paitsi käynnistää session, myös luo satunnaisen tunnisteen (session ID) • Oletusarvoisesti tunniste tallennetaan asiakaspään cookieen  isunto täytyy käynnistää skriptissä ennen kuin selaimelle on lähetetty mitään. Miksi?

Sessionhallinta PHP:lla, 3 • Mikäli selain ei salli cookieiden käyttöä, tunniste siirretään sivulta toiselle GET:lla ja liitetään automaattisesti paikallisiin linkkeihin • Kun istunto on käynnistetty, voidaan skripteissä käyttää istuntomuuttujia, jotka säilyvät kunnes istunto päättyy (selain suljetaan tai istunto lopetetaan muulla tavoin) • Jotta skripti pääsee käsiksi istuntomuuttujiin, sen täytyy kutsua session_start(). Ei käynnistä uutta istuntoa, mikäli aktiivinen istunto löytyy

Sessionhallinta PHP:lla, 4 • Istuntomuuttuja voidaan asettaa kahdella tavalla: a)session_register(), jolle parametrina muuttujan nimi: session_register(“foo”) b)tai PHP  4.1: $_SESSION[“nimi”] = “arvo”  Käytettäessä a), muuttuja täytyy määritellä globaaliksi, mikäli sitä halutaan g:na käyttää  Käytettäessä a), muuttuja voidaan vapauttaa kutsumalla session_unregister()  Käytettäessä b), muuttuja on autom. globaali. $_SESSION on taulukko, joten muuttujan vapauttaminen esim. unset($_SESSION[“nimi”])

Sessionhallinta PHP:lla, 5 • Kaikki istuntomuuttujat voidaan vapauttaa kutsumalla session_unset() • session_destroy() lopettaa aktiivisen istunnon ja poistaa siihen liittyvän datan, poislukien globaalit muuttujat (ja istuntoon liittyvät cookiet): Tapa a) session_unset() session_destroy(); Tapa b) $_SESSION = array() session_destroy();

Sessionhallinta, cookiet • Cookie on (selaimen) muistiin tallentuva tekstitiedosto, jonne voidaan säilöä rajoitetunmittainen merkkijono • Istunto päättyy (ja mahdollinen tunnisteen tallentanut cookie poistetaan) automaattisesti kun selain suljetaan (kts. kalvo edellä: “Expires: at end of session”) • Muuttamalla expire -parametria, cookieita voidaan käyttää myös kun tietoa halutaan säilyttää istuntojen välillä. Miksi haluttaisiin?

Sessionhallinta, cookiet, 2 • Cookien asettaminen setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]]) jossa  name, cookien nimi ($_COOKIE[‘keksi’])  value, cookieen tallennettava arvo (saadaan $_COOKIE[‘keksi’] kautta)  expire, aika jolloin cookie vanhenee. Asetetaan unix timestampia käyttäen sekunteina, esim. time()+60*60*24*7; = 7 päivää. Mikäli arvoa ei aseteta, cookie on voimassa vain istunnon loppuun

Sessionhallinta, cookiet, 3  path, hakemistopolku palvelimella, jonka alla cookie on käytettävissä: esim. ‘/’ = koko domain; ‘/omat/’ = hakemisto ‘omat’ ja sen alihakemistot. Oletusarvona cookien asettaneen skriptin sijaintipolku  domain, domain ja alidomainit, joissa cookie on käytettävissä: esim. ‘.palvelin.fi’ = kaikki.palvelin.fi - päätteiset; ‘ = vain www -subdomain  secure, jos ‘1’, cookie asetetaan ainoastaan turvallisen yhteyden (esim. TSL tai SSL) yli. Mikäli cookie on jo asetettu, arvolla ‘1’ sen sisältöön päästään käsiksi vain turv. yhteyden kautta. Oletusarvo ‘0’

Sessionhallinta, cookiet, 4 • Esimerkkejä: $nimi = “Anna Malli” setcookie(“Nimi”, $nimi); setcookie(“Nimi”, $nimi, time ); /* time() palauttaa ajan kuluneina sekunteina :00 GMT jälkeen. 60*60*24*7 = = viikko */ setcookie(“Nimi”, $nimi, time , “”, “”, 1); /* sama kuin edellä, mutta käsittely vain yli. Huom. tyhjät arvot parametreille, joita ei haluta määritellä */ setcookie(“Nimi”, $nimi, time , “/~annamalli/”, “”, 1); /* sama kuin edellä ja käytössä ainoastaan Anna Mallin kotihakemistossa */ echo $_COOKIE[‘Nimi’]; // tulostaa: Anna Malli

Sessionhallinta, cookiet, 5 • Cookieen voidaan tallentaa ainoastaan merkkijono (string). Taulukkoja käytettäessä, voidaan käyttää serialize() funktiota, joka palauttaa taulukon tallennettavassa muodossa (string): $tiedot = array(“Nimi” => “Anna Malli”, “Osoite” => “Kotikatu 3”, “Puhelin” => “ ”); echo serialize($tiedot); /* a:3:{s:4:"Nimi";s:10:"Anna Malli";s:6:"Osoite";s:10:"Kotikatu 3”; s:7:"Puhelin";s:8:" ";} */

Sessionhallinta, cookiet, 6 /* Tallennetaan cookieen taulukko */ setcookie(“Tiedot”, serialize($tiedot)); echo $_COOKIE[‘Tiedot’]; /* a:3:{s:4:\"Nimi\";s:10:\"AnnaMalli\";s:6:\"Osoite\";s:10:\"Kotikatu3\"; s:7:\"Puhelin\";s:8:\" \";} */ /* Poistetaan automaattisesti lisätyt escape-merkit (\) lainausmerkkien edestä */ $tiedot_cookiesta = stripslashes($_COOKIE[‘Tiedot’]); /* Palautetaan taulukko ennalleen… */ $tiedot_cookiesta = unserialize($tiedot_cookiesta);