OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla

Koko: px
Aloita esitys sivulta:

Download "OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla"

Transkriptio

1 19. Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 337 OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla HTTP on tilaton protokolla. Se merkitsee sitä, että jokainen käyttäjän lataama sivu edustaa erillistä yhteyttä. Toisaalta Web-sivustoa pidetään käyttäjien ja julkaisijoiden toimesta ikäänkuin ympäristöinä, avaruuksina, joiden sisällä jokainen sivu on osa laajempaa kokonaisuutta. Siksi ei ole lainkaan yllättävää, että strategiat, joilla tietoa viedään sivulta toiselle, ovat yhtä vanhoja kuin itse Webikin. Tällä tunnilla tutkimme kahta menettelyä tallentaa tietoa sivulta toiselle, jotta tieto olisi peräkkäisten sivujen käytettävissä. Tämän tunnin aiheita ovat seuraavat: Mitä evästeet ovat Kuinka eväste luetaan Kuinka eväste asetetaan Kuinka evästeitä käytetään tallentamaan sivuston käyttöön liittyvää informaatiota tietokantaan Kyselymerkkijonot Kuinka muodostetaan funktio, joka muuntaa assosiatiivisen taulukon kyselymerkkijonoksi

2 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla Evästeet Netscape loi maagisen evästeen Netscapen ykkösversion aikaan. Nimen voisi olettaa perustuvan onnen kekseihin. Noista ajoista lähtien standardi on otettu huomioon myös muiden selainvalmistajien toimesta. Eväste on tiedonpalanen, joka tallennetaan selaimen toimesta palvelin- tai skriptipyynnön yhteydessä. Palvelin voi pyytää tallentamaan enintään 20 evästettä käyttäjän selaimen toimesta. Yksittäisen evästeen koko on enintään 4 kilotavua. Kun eväste on asetettu, vain sen synnyttänyt palvelin voi lukea tietoa, jolloin taataan käyttäjän yksityisyys. Käyttäjä voi lisäksi laittaa selaimensa asetukset sellaisiksi, että evästeiden laittamisesta ilmoitetaan, tai hän voi jopa estää evästeiden käytön. Tästä syystä evästeitä tulisi käyttää varoen eikä niistä tulisi tehdä sivuston olennaisia elementtejä varoittamatta käyttäjää. Evästeet voivat kuitenkin olla erinomainen keino tallentaa pieniä määriä tietoa käyttäjästä ja viedä tuo tieto sivulta toiselle ja jopa käyntikerralta toiselle. Evästeen anatomia Evästeet asetetaan yleensä HTTP-otsikossa (vaikkakin JavaScript voi asettaa evästeen suoraan selaimelta käsin). PHP-skripti, joka asettaa evästeen, saattaa lähettää otsikoita, jotka näyttävät jokseenkin seuraavanlaisilta: HTTP/ OK Date: Fri, 04 Feb :03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: vegetable=artichoke; expires=friday, A 04-Feb-00 22:03:38 GMT; path=/; domain=zink.demon.co.uk Connection: close Content-Type: text/html Kuten näet, Set-Cookie-otsikko sisältää nimi/arvo-parin, GMT-ajan, polun ja domainin. Nimi ja arvo ovat URL-koodattuja. Kenttä nimeltä expires on ohje selaimelle: se kertoo, milloin selain voi unohtaa evästeen. Kenttä nimeltä path määrittää Web-sivuston, jonka alta eväste lähetetään takaisin palvelimelle. Domainkenttä määrittää Internet-domainit, joihin eväste lähetetään. Domain ei voi olla eri domain kuin se, mistä eväste lähetettiin, mutta siinä voi kuitenkin olla hieman joustavuutta. Edellisessä esimerkissä selain lähettää evästeen palvelimelle zink.demon.co.uk ja palvelimelle Löydät lisätietoa HTTP-otsikoista luvusta 13, "Pintaa syvemmältä". Jos selain asetetaan tallentamaan evästeet, se pitää tiedon, kunnes päättymispäivämäärä kohdataan. Jos käyttäjä siirtyy mille tahansa sivulle, joka vastaa evästeen polkua ja domainia, se lähettää evästeen uudelleen palvelimelle. Selaimen otsikot saattavat näyttää jokseenkin tältä: GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux apmac ppc)

3 19. Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 339 Host: zink.demon.co.uk:1126 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso ,*,utf-8 Cookie: vegetable=artichoke PHP-skriptillä on tämän jälkeen pääsy evästeeseen ympäristömuuttujan HTTP-COOKIE (joka tallentaa kaikkien evästeiden tunnisteet ja arvot), globaalin muuttujan $vegetable tai globaalin taulukkomuuttujan HTTP_COOKIE_VARS["vegetable"] kautta: print "$HTTP_COOKIE<BR>"; // tulostaa "vegetable=artichoke" print getenv("http_cookie")."<br>"; // tulostaa "vegetable=artichoke" print "$vegetable<br>"; // tulostaa "artichoke" print "$HTTP_COOKIE_VARS[vegetable]<BR>"; // tulostaa "artichoke" Evästeen asettaminen PHP:llä PHP-skriptissä voidaan asettaa eväste kahdella eri tavalla. Voit käyttää header()-funktiota asettamaan Set- Cookie-otsikko. Tutustuit tähän header()-funktioon jo luvussa 9, "Lomakkeiden käsittely". Funktio ottaa argumentikseen merkkijonon, joka sitten sijoitetaan palvelimen vastauksen otsikko-osaan. Koska otsikot lähetetään automaattisesti puolestasi, header()-kutsun on oltava ennen kaikkia muita selaintulostuksia. header ("vegetable=artichoke; expires=friday, 04-Feb-00 22:03:38 GMT; path=/; domain=zink.demon.co.uk"); Vaikka tämä menettely ei olekaan kovin vaikea, evästeen asettaminen tällä tavoin vaatii muodostamaan funktion, joka kehittää otsikon merkkijonon. Päivämäärän muotoilu (kuten tässä esimerkissä) ja nimi/arvoparin URL-koodaus eivät olisi kovinkaan hauskoja tehtäviä. Kyseessä olisi joka tapauksessa pyörän uudelleen keksiminen, koska PHP tarjoaa käyttöön funktion, joka tekee juuri nuo toiminnot. Funktio nimeltä setcookie() tekee nimensä mukaisesti sen mitä pitääkin: se tulostaa Set-Cookie-otsikon. Siitä syystä sitä tulee kutsua ennen kuin selaimelle lähetetään mitään muuta tietoa. Funktio ottaa argumenteikseen evästeen nimen, evästeen arvon, päättymispäivämäärän UNIXin muodossa, polun, domainin ja kokonaisluvun, jonka arvo on 1, jos eväste lähetetään turvallisen yhteyden yli. Kaikki muut argumentit paitsi ensimmäinen (evästeen nimi) ovat valinnaisia. Listaus 19.1 käyttää setcookie()-funktiota evästeen asettamiseen.

4 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla Listaus 19.1 Evästeen arvon asettaminen ja tulostaminen 1: <?php 2: setcookie( "vegetable", "artichoke", time()+3600, "/", 3: "zink.demon.co.uk", 0 ); 4:?> 5: <html> 6: <head> 7: <title>listing 19.1 Setting and printing a cookie value</title> 8: </head> 9: <body> 10: <?php 11: if ( isset( $vegetable ) ) 12: print "<p>hello again, your chosen vegetable is $vegetable</p>"; 13: else 14: print "<p>hello you. This may be your first visit</p>"; 15:?> 16: </body> 17: </html> Vaikka asetamme evästeen, kun skripti ajetaan ensimmäistä kertaa, ei $vegetable-muuttujaa aseteta tällä kohtaa. Eväste vain luetaan, kun selain lähettää sen palvelimelle. Sitä ei tapahdu ennen kuin käyttäjä vierailee domainin sivulla uudelleen. Asetamme evästeen nimeltä "vegetable" ja evästearvon "artichoke". Käytämme time()-funktiota sieppaamaan nykyisen aikaleiman ja lisäämään siihen 3600 (tunnissa on 3600 sekuntia). Tuo kokonaissumma kuvaa päättymisajankohtaa. Määrittelemme poluksi "/", mikä tarkoittaa sitä, että eväste tulee lähettää alueen jokaisen sivun kohdalla. Asetamme domainiksi "zink.demon.co.uk", mikä tarkoittaa sitä, että eväste lähetetään jokaiselle tuon ryhmän palvelimelle (esimerkiksi palvelimille sekä dev.zink.demon.co.uk). Jos haluat evästeen palautettavan vain palvelimelta, joka toimii skriptisi alustana, voit käyttää ympäristömuuttujaa nimeltä $SERVER_NAME sen sijaan, että kirjoittaisit palvelimen nimen suoraan. Tämän menettelyn lisäetuna on se, että koodi toimii odotetusti, vaikka siirtyisit uuden palvelimen käyttöön. Lopuksi viemme arvon 0 setcookie()-funktiolle, jolla ilmoitamme, että evästeet voidaan lähettää ei-turvallista yhteyttä käyttäen. Vaikka voitkin ohittaa kaikki muut paitsi ensimmäiset argumentit, on hyvä antaa kaikki muut argumentit paitsi domain ja turvallisuus. Tämä siksi, että polkuargumentti vaaditaan joidenkin selainten toimesta, jotta evästeet toimisivat odotetusti. Ilman polkuargumenttia eväste voidaan lähettää vain nykyisen kansion tai sen alikansioiden asiakirjoille. Viemällä setcookie()-funktiolle tyhjän merkkijonon ("") merkkijonoargumenttien paikalla ja nollan (0) kokonaislukuargumenttien sijaan, nuo argumentit ohitetaan.

5 19. Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 341 Evästeen tuhoaminen Eväste voidaan tuhota kutsumalla setcookie()-funktiota ja antamalla vain evästeen nimi argumenttina: setcookie( "vegetable" ); Se ei kuitenkaan toimi aina oikein ja siihen ei pitäisi luottaa. On turvallisinta asettaa päättymisajankohta: setcookie( "vegetable", "", time()-60, "/", "zink.demon.co.uk", 0); Sinun tulisi myös varmistaa, että viet setcookie()-funktiolle saman polun, domainin ja turvallisuusparametrin kuin evästeen luonnin yhteydessä. Istuntoevästeiden luominen Voimme luoda evästeen, joka kestää vain istunnon ajan, viemällä setcookie()-funktiolle päättymisajankohdaksi arvon 0. Kun selain on päällä, evästeet palautetaan palvelimelle. Selain ei muista kuitenkaan evästettä sen jälkeen kun selain suljetaan ja avataan uudelleen. Tällainen menettely voi olla hyödyllistä skripteissä, jotka todentavat käyttäjän evästeen avulla ja sallivat jatkuvan pääsyn henkilökohtaisiin tietoihin useilta eri sivuilta, kun salasana on lähetetty. Yleensä et halua, että selain pääsee noille sivuille sen jälkeen kun se on käynnistetty uudelleen, koska et voi olla lainkaan varma siitä, että käyttäjä on sama kuin edellisellä kerralla. setcookie( "session_id", "55435", 0 ); Esimerkki sivuston käytön seuranta Kuvittele, että meille on annettu tehtäväksi kerätä tietoa käyttäjistä evästeiden ja MySQL-tietokantojen avulla. Asiakas haluaa meidän keräävän tietoa yksittäisistä käyttäjistä, keskimääräisen latausten määrän ja keskimääräisen vierailuajan. Ensimmäisenä tehtävänämme on selittää evästeiden rajallisuus asiakkaalle. Ensiksikin kaikki kävijät eivät salli evästeiden käyttöä selaimellaan. Jos evästettä ei hoideta selaimen toimesta, evästeskripti olettaa todennäköisesti, että kyseessä on aina asiakkaan ensimmäinen vierailu. Niinpä tilastotiedot vääristyvät, kun mukana on selaimia, jotka eivät tue evästeitä. Edelleen on sanottava, että emme voi olla varmoja siitä, että sama käyttäjä käyttää jatkuvasti tiettyä selainta; usein selain on pikemminkin usean käyttäjän käytössä. Kun rajallisuus on asiakkaan tiedossa, voimme mennä eteenpäin. Voimme itse asiassa muodostaa toimivan esimerkin alle sadalla koodirivillä! Ensin meidän on luotava tietokannan taulukko, jossa ovat taulukon 19.1 sisältämät kentät. Taulukko 19.1 Tietokannan kentät Nimi Tyyppi Kuvaus id Kokonaisluku Automaattisesti kasvatettava kenttä, joka tuottaa ja tallentaa uniikin ID:n kullekin käyttäjälle first_visit Kokonaisluku Aikaleima, joka edustaa ensimmäisen

6 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla sivupyynnön ajankohtaa last_visit Kokonaisluku Aikaleima, joka edustaa viimeisimmän sivupyynnön ajankohtaa num_visits Kokonaisluku Käyttäjälle jaettujen istuntojen lukumäärä total_duration Kokonaisluku Arvioitu kokonaisaika, joka on vietetty sivustossa (sekunneissa) total_clicks Kokonaisluku Käyttäjän tekemien pyyntöjen kokonaismäärä Voimme luoda MySQL-taulukon nimeltä track_visit seuraavalla CREATE-lauseella: create table track_visit ( id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY( id ), first_visit INT, last_visit INT, num_visits INT, total_duration INT, total_clicks INT ); Nyt, kun meillä on käytössämme taulukko, meidän on kirjoitettava koodia, joka avaa tietokantayhteyden ja tarkistaa evästeen olemassaolon. Jos eväste ei ole olemassa, luomme uuden rivin taulukkoomme ja asetamme alkuarvot kenttiin. Se tehdään listauksessa Listaus 19.2 Skripti, joka lisää uuden käyttäjän tiedot MySQL-tietokantaan 1: <?php 2: $link = mysql_connect( "localhost", "harry", "elbomonkey" ); 3: if (! $link ) 4: die( "Couldn't connect to mysqld" ); 5: mysql_select_db( "sample", $link ) or die ( mysql_error() ); 6: if (! isset ( $visit_id ) ) 7: $user_stats = newuser( $link ); 8: else 9: print ``Welcome back $visit_id<p>"; 10: function newuser( $link ) 11: {

7 19. Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla : // uusi käyttäjä! 13: $visit_data = array ( 14: first_visit => time(), 15: last_visit => time(), 16: num_visits => 1, 17: total_duration => 0, 18: total_clicks => 1 19: ); 20: $query = "INSERT INTO track_visit ( first_visit, 21: last_visit, 22: num_visits, 23: total_duration, 24: total_clicks ) "; 25: $query.= "values( $visit_data[first_visit], 26: $visit_data[last_visit], 27: $visit_data[num_visits], 28: $visit_data[total_duration], 29: $visit_data[total_clicks] )"; 30: $result = mysql_query( $query ); 31: $visit_data[id] = mysql_insert_id(); 32: setcookie( "visit_id", $visit_data[id], 33: time()+(60*60*24*365*10), "/" ); 34: return $visit_data; 35: } 36:?> Kytkeydymme MySQL-palvelimelle normaaliin tapaan ja valitsemme tietokannan, joka sisältää taulukkomme (saat lisätietoa MySQL-kannoista luvusta 12, "Tietokantojen käyttö"). Testaamme nyt muuttujan $visit_di läsnäolon; se on evästeen nimi, joka identifioi yksittäisen käyttäjän. Jos muuttujaa ei ole olemassa, oletamme, että olemme tekemisissä uuden käyttäjän kanssa ja kutsumme funktiota nimeltä newuser(). Funktio ottaa argumentikseen linkkitunnisteen ja palauttaa arvotaulukon, jonka lisäämme omaan taulukkoomme. Funktion sisällä luodaan taulukko nimeltä $visit_data. Asetamme sen first_visit- ja last_visitalkioiden arvoiksi nykyisen ajan sekunneissa. Koska kyseessä on ensimmäinen vierailu, asetamme alkioiden num_visits ja total_clicks arvoiksi ykkösen. Tällä vierailulla ei ole kulunut yhtään aikaa, joten alkion total_duration arvoksi asetetaan 0. Käytämme tämän taulukon alkioita luodaksemme uuden rivin taulukkoomme ja asetamme kuhunkin kenttään samannimisen alkion arvon. Koska id-kenttä kasvattaa itse itseään, sitä ei tarvitse asettaa. Voimme saada

8 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla selville id-kentän arvon funktiolla mysql_insert_id(). Nyt kun meillä on uuden käyttäjän ID, voimme lisätä sen $visit_data-taulukkoon, joka sitten viittaa vierailijan riviin MySQL-taulussa. Lopuksi käytämme setcookie()-funktiota asettamaan visit_id-evästeen ja palauttamaan $visit_datataulukon kutsuvalle koodille. Kun vierailija lataa tämän skriptin seuraavan kerran, $visit_id-muuttujan arvona on visit_id-evästeen arvo. Koska tämä muuttuja on asetettu, käyttäjä yksinkertaisesti toivotetaan tervetulleeksi eikä mtään muita toimintoja tarvitse enää tehdä. Itse asiassa meidän tulee päivittää track_visit-taulukon informaatio, jos havaitsemme tunnetun vierailijan palaamisen sivuille. Meidän on testattava, onko nykyinen pyyntö osa meneillään olevaa vierailua vai uuden vierailun alku. Jos viimeisen pyynnön aika lisättynä tähän ajanjaksoon on suurempi kuin nykyinen, oletamme, että nykyinen pyyntö on osa meneillään olevaa istuntoa. Muutoin toivotamme vanhan kävijän tervetulleeksi. Listaus 19.3 lisää aiempaan koodiimme uuden funktion nimeltä olduser(). Listaus 19.3 Skripti jäljittää käyttäjät evästeiden ja MySQL-tietokannan avulla 1: <?php 2: $slength = 300; // 5 minuuttia sekunneissa 3: $link = mysql_connect( "localhost", "harry", "elbomonkey" ); 4: if (! $link ) 5: die( "Couldn't connect to mysqld" ); 6: mysql_select_db( "sample", $link ) or die ( mysql_error() ); 7: if (! isset ( $visit_id ) ) 8: $user_stats = newuser( $link ); 9: else 10: { 11: $user_stats = olduser( $link, $visit_id, $slength ); 12: print "Welcome back $visit_id<p>"; 13: } 14: function newuser( $link ) 15: { 16: // uusi käyttäjä! 17: $visit_data = array ( 18: first_visit => time(), 19: last_visit => time(), 20: num_visits => 1, 21: total_duration => 0,

9 19. Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla : total_clicks => 1 23: ); 24: $query = "INSERT INTO track_visit ( first_visit, 25: last_visit, 26: num_visits, 27: total_duration, 28: total_clicks ) "; 29: $query.= "values( $visit_data[first_visit], 30: $visit_data[last_visit], 31: $visit_data[num_visits], 32: $visit_data[total_duration], 33: $visit_data[total_clicks] )"; 34: $result = mysql_query( $query ); 35: $visit_data[id] = mysql_insert_id(); 36: setcookie( "visit_id", $visit_data[id], 37: time()+(60*60*24*365*10), "/" ); 38: return $visit_data; 39: } 40: function olduser( $link, $visit_id, $slength ) 41: { 42: // hän on ollut täällä ennenkin! 43: $query = "SELECT * FROM track_visit WHERE id=$visit_id"; 44: $result = mysql_query( $query ); 45: if (! mysql_num_rows( $result ) ) 46: // eväste löydetty, mutta id ei ole tietokannassa: uusi käyttäjä 47: return newuser( $link ); 48: $visit_data = mysql_fetch_array( $result, $link ); 49: // ei käyntejä, joten kasvatus 50: $visit_data[total_clicks]++; 51: if ( ( $visit_data[last_visit] + $slength ) > time() ) 52: // edelleen istunnossa, joten lisää kuluneeseen kokonaisaikaan 53: $visit_data[total_duration] += 54: ( time() - $visit_data[last_visit] );

10 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 55: else 56: // uusi vierailu 57: $visit_data[num_visits]++; 58: // päivitä tietokanta 59: $query = "UPDATE track_visit SET last_visit=".time().", 60: num_visits=$visit_data[num_visits], "; 61: $query.= "total_duration=$visit_data[total_duration], 62: total_clicks=$visit_data[total_clicks] "; 63: $query.= "WHERE id=$visit_id"; 64: $result = mysql_query( $query ); 65: return $visit_data; 66: } 67:?> Lisäsimme koodiin uuden globaalin muuttujan nimeltä $slength. Se määrittää ajanjakson, jonka kuluttua oletamme, että uusi vierailu on aloitettu. Jos $visit_id-muuttuja löytyy, tiedämme, että eväste oli käytössä. Kutsumme uutta olduser()-funktiota ja viemme sille tietokantalinkin tunnisteen, $visit_id-muuttujan ja $slength-muuttujan, jonka arvona on 300 sekuntia. Teemme ensin kyselyn tietokantaan olduser()-funktiossa saadaksemme tietoa kävijästä, jonka tiedot on jo tallennettu. Tutkimme track_visit-taulukkoa löytääksemme rivin, jonka id-kentän arvo on sama $visit_idmuuttujan arvo. Voimme sitten testata mysql_query()-funktion palauttamien arvojen määrän funktiolla mysql_num_rows() viemällä sille tulostunnisteen. Jos funktio palauttaa arvon nolla, tiedämme, että kyseessä ei ollut vanha kävijä, joten kutsumme nyt newuser()-funktiota ja päätämme funktion suorituksen. Olettakaamme, että olemme paikantaneet taulukosta rivin, joka vastaa visit_id-evästettä; käytämme sitten mysql_fetch_array()-funktiota täyttämään taulukkomuuttujan ($visit_data) tiedot rivillä olevien kenttien nimillä ja arvoilla. Nykyinen pyyntö edustaa uutta viittausta sivuille, joten kasvatamme alkion $visit_data[total_clicks] arvoa yhdellä. Tarkistamme sitten, onko $visit_data[last_visit]-alkion arvo, johon on lisätty $slength-muuttujassa oleva aikajakso, suurempi kuin nykyinen aika. Jos niin on, viimeisestä viittauksesta on kulunut aikajaksoa vähemmän aikaa, joten voimme olettaa, että tämä pyyntö kuuluu nykyiseen istuntoon. Siksi lisäämme viimeisestä viittauksesta kuluneen ajan $visit_data[total_duration]- alkioon. Jos pyyntö edustaa uutta vierailua, kasvatamme $visit_data[num_visits]-arvoa. Lopuksi käytämme $visit_data-taulukon muuttuneita arvoja päivittämään käyttäjän rivin track_visit-taulukossa ja $visit_datataulukon kutsuvalle koodille. Huomaa, että asetamme last_visit-kentän arvoksi nykyisen ajan. Nyt kun olemme luoneet koodin, meidän tulee luoda nopea funktio demonstroimaan toimintaa. Funktio nimeltä outputstats() yksinkertaisesti laskee käyttäjän keskimääräisarvot ja tulostaa ne selaimelle. Todellisuudessa meidän tulisi luultavasti luoda joitakin analysoituja näyttöjä asiakkaallemme, jotta asiakas saisi kokonaiskuvan tilanteesta. Listaus 19.4 luo outputstats()-funktion. Edellisten esimerkkien koodi on yhdistetty tähän skriptiin include()-lauseella.

11 19. Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 347 Listaus 19.4 Skripti, joka tulostaa käyttöön liittyvää tilastotietoa, jota on kerätty listauksessa : <?php 2: include("listing19.3.php"{); 3: outputstats(); 4: function outputstats() 5: { 6: global $user_stats; 7: $clicks = sprintf( "%.2f", 8: ($user_stats[total_clicks]/$user_stats[num_visits]) ); 9: $duration = sprintf( "%.2f", 10: ($user_stats[total_duration]/$user_stats[num_visits]) ); 11: print "<p>hello! Your id is $user_stats[id]</p>\n\n"; 12: print "<p>you have visited 13: $user_stats[num_visits] time(s)</p>\n\n"; 14: print "<p>av clicks per visit: $clicks</p>\n\n"; 15: print "<p>av duration of visit: $duration seconds</p>\n\n"; 16: } 17:?> Kuva 19.1 esittää listauksen 19.4 tulostuksen. Käytämme include()-lausetta kutsumaan kirjoittamamme jäljityskoodin. Lisäämme samanlaisen rivin jokaiselle asiakkaan sivuston sivulle. Koodin outputstats()-funktio toimii yhdessä globaalin $user_stats-muuttujan kanssa. Joko funktio newuser() tai olduser() palauttaa muuttujan ja se sisältää saman tiedon kuin käyttäjän rivi track_visit-taulukossa. KUVA 19.1 Käyttöön liittyvän tilastotiedon raportointi.

12 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla Laskeaksemme käyttäjän keskimääräisen viittausten lukumäärän jaamme $user_stats[total_clicks]-alkion arvon vierailujen määrällä. Samalla lailla jaamme $user_stats[total_duration]-alkion arvon samalla luvulla. Käytämme sprint()-funktiota pyöristämään tuloksen kahteen desimaaliin. Jäljellä on vain raportin kirjoittaminen selaimelle. Voisimme tietenkin laajentaa tätä esimerkkiä jäljittämään käyttäjän asetukset sekä selaintyypin ja IP-osoitteet. Kuvittele sivustoa, joka analysoi käyttäjän liikkeet ja muokkaa sisältöä valittujen linkkien perusteella. Kyselymerkkijonojen käyttö Evästeiden heikkoutena on se, että niiden käyttäminen riippuu asiakkaasta. Kyse ei ole pelkästään siitä, salliiko käyttäjä evästeiden käytön vaan myös siitä, että selaimetkin toteuttavat evästeitä eri tavoin. Jotkin selaimet ovat dokumentoineet virheitä, jotka liittyvät siihen, kuinka ne käsittelevät evästeitä. Jos haluat pelkästään säilyttää tilan yksittäisen istunnon ajan, voisi olla järkevää pohtia perinteisempiä keinoja. Kun lähetät lomakkeen GET-metodilla, sen kentät ja arvot URL-koodataan ja lisätään URL-osoitteeseen, johon lomake lähetetään. Tällöin tiedot tulevat palvelimen ja skriptiesi saataville. Olettaen, että lomakkeella on kaksi kenttää, user_id ja name, näyttäisi kyselymerkkijono seuraavalta: Kukin nimi ja arvo erotetaan toisistaan yhtäsuuruusmerkillä (=) ja kukin nimi/arvo-pari erotetaan toisistaan etmerkillä (&). PHP koodaa tämän merkkijonon ja asettaa jokaisen parin assosiatiiviseen $HTTP_GET_VARStaulukkoon. Se luo myös globaalin muuttujan kullakin nimellä ja täyttää sen vastaavalla arvolla. Saadaksesi siis esille user_id-arvon, voit käyttää jompaa kumpaa seuraavista muuttujista: $HTTP_GET_VARS[user_id]; $user_id; Kyselymerkkijonojen käyttäminen ei rajoitu pelkästään lomakkeisiin. Voit rakentaa oman kyselymerkkijonosi suhteellisen helposti ja viedä sillä tavoin tietoa sivulta toiselle. Kyselymerkkijonon luominen Luodaksesi kyselymerkkijonon sinun tulee kyetä URL-koodaamaan tarvittavia avaimia ja arvoja. Olettakaamme, että haluat viedä URL:n sivulta toiselle osana kyselymerkkijonoa. Kauttaviivat ja kaksoispiste voivat aiheuttaa ongelmia jäsentelijälle. Siksi meidän on muunnettava URL heksadesimaalimerkeiksi. Voimme tehdä sen PHP:n urlencode()-funktiolla. Se ottaa argumentikseen merkkijonon ja palauttaa koodatun kopion: print urlencode("http://www.corrosive.co.uk"); // tulostaa http%3a%2f%2fwww.corrosive.co.uk Nyt kun osaat URL-koodata tekstisi, sinun tulee muodostaa oma kyselymerkkijonosi. Seuraava koodi muodostaa kyselymerkkijonon kahdesta muuttujasta:

13 19. Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 349 <?php $interest = "arts"; $homepage = "http://www.corrosive.co.uk"; $query = "homepage=".urlencode( $homepage ); $query.= "&interest=".urlencode( $interest );?> <A HREF="newpage.php?<?print $query?>">go</a> Selain näkee linkin URL tällaisena: newpage.php?homepage=http%3a%2f%2fwww.corrosive.co.uk&interest=arts Parametrit homepage ja interest ovat nyt newpage.php-sivun käytössä globaaleina muuttujina. Tämä lähestymistapa on kuitenkin kömpelö. Koska olemme kirjoittaneet muuttujien nimet suoraan kyselymerkkijonoon, koodin uudelleenkäyttö ei onnistu helposti. Viedäksemme tietoa tehokkaasti sivulta toiselle meidän tulee tehdä nimien ja arvojen lisääminen linkkiin helpoksi ja generoitava kyselymerkkijono automaattisesti. Se on erityisen tärkeää silloin, kun haluamme tarjota muille kuin ohjelmoijille hyvän työskentelyalustan PHP:n avulla. Listaus 19.5 luo funktion nimeltä qlink(), joka ottaa argumentikseen assosiatiivisen taulukon ja palauttaa kyselymerkkijonon. Listaus 19.5 Funktio, joka muodostaa kyselymerkkijonoja 1: <html> 2: <head> 3: <title>listing 19.5 A function to build query strings</title> 4: </head> 5: <body> 6: <?php 7: function qlink( $q ) 8: { 9: GLOBAL $QUERY_STRING; 10: if (! $q ) return $QUERY_STRING; 11: $ret = ""; 12: foreach( $q as $key => $val )

14 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 13: { 14: if ( strlen( $ret ) ) $ret.= "&"; 15: $ret.= urlencode( $key ). "=". urlencode( $val ); 16: } 17: return $ret; 18: } 19: $q = array ( name => "Arthur Harold Smith", 20: interest => "Cinema (mainly art house)", 21: homepage => ``http://www.corrosive.co.uk/harold/" 22: ); 23: print qlink( $q ); 24: // tulostaa name=arthur+harold+smith&interest=cinema+%28mainly+art+house 25: // %29&homepage=http%3A%2F%2Fwww.corrosive.co.uk%2Fharold%2F 26:?> 27: <p> 28: <a href="anotherpage.php?<? print qlink($q)?>">go!</a> 29: </p> 30: </body> 31: </html> Koodin qlink()-funktio ottaa argumentikseen assosiatiivisen taulukon, jonka se tallentaa muuttujaan $q. Jos $q ei ole asetettu, palautamme yksinkertaisesti nykyisen skriptin kyselymerkkijonon, joka on tallennettu $QUERY_STRING-muuttujaan. Tällä tavoin qlink()-funktiota voidaan käyttää viemään muuttumaton GETpyynnön tieto. Olettaen, että $q on asetettu, alustamme muuttujan nimeltä $ret sijoittamalla siihen tyhjän merkkijonon. Siinä tulee olemaan kyselymerkkijonomme. Funktiossa käytetään foreach-lausetta käymään läpi $q-taulukko ja sijoittamaan kukin avain muuttujaan $key ja kukin arvo muuttujaan $val. Avain/arvo-parit erotetaan toisistaan et-merkillä (&), joten jos emme ole ensimmäisellä silmukkakierroksella, tulostamme tämän merkin. Tiedämme, että $ret-muuttujan merkkijonon pituus on ensimmäisellä kierroksella nolla, joten voimme käyttää sitä seikkaa estämään et-merkin sijoittamisen merkkijonoon. Käytämme urlencode()-funktiota koodaamaan sekä $key- että $val-muuttujat ja lisäämään ne =-merkillä erotettuina $ret-muuttujaan. Lopuksi palautamme koodatun kyselymerkkijonon. Tällä funktiolla voimme viedä tietoa sivulta toiselle käyttäen samalla mahdollisimman vähän php-koodia HTML-elementtien sisällä.

15 19. Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 351 Yhteenveto Tällä tunnilla tutkimme tietojen siirtämistä pyynnöstä toiselle. Menettelyjen avulla voit luoda moninäyttöisiä sovelluksia ja kehittyneitä ympäristöjä, jotka vastaavat käyttäjien asetuksia ja toiveita. Opit käyttämään setcookie()-funktiota, jolla asetetaan evästeitä käyttäjän selaimelle. Kehitimme menettelyä eteenpäin ja loimme tietokannan, jota voidaan käyttää evästeiden kanssa tallentamaan tietoa käyttäjistä istunnosta toiselle. Opit tekemään kyselymerkkijonoja ja koodaamaan niitä sekä kehittämään funktion, joka automatisoi niiden luomisen. K&V K Liittyykö evästeisiin mitään negatiivisia ja vakavia turvallisuus- tai yksityisyysnäkökohtia? V Palvelin voi päästä käsiksi vain evästeisiin, jotka on asetettu sen oman domainin kautta. Vaikka eväste voidaan tallentaa käyttäjän kiintolevylle, ei muualle käyttäjän tiedostojärjestelmään ole pääsyä. On kuitenkin mahdollista asettaa eväste kuvan pyytämisen yhteyteen. Niinpä jos usealla sivustolla on kolmannen osapuolen tarjoamia kuvia, voi tuo kolmas osapuoli jäljittää käyttäjän useiden domainien läpi. K Kyselymerkkijono näyttää rumalta selainikkunassa. Voiko sanoa, että evästeet ovat siistimpi tapa tallentaa tilatietoa? V Valitettavasti asia ei ole noin yksinkertainen. Parhaimmillaan evästeet ovat läpinäkyvä tapa tallentaa tilatietoa. Jotkut käyttäjät asettavat kuitenkin selaimensa varoittamaan joka kerta, kun eväste asetetaan. Nämä käyttäjät pitävät todennäköisesti sellaisia sivustoja, jotka tallentavat tilatietoja säännöllisesti, hieman turhauttavina. Työpaja Työpaja tarjoaa joukon kertauskysymyksiä, joiden avulla voit tarkistaa, oletko ymmärtänyt materiaalin sisältöä. Yritä ymmärtää vastaukset ennen kuin jatkat seuraaviin lukuihin. Vastaukset ovat liitteessä A. Kysymyksiä 1. Millä funktiolla voit asettaa evästeen vierailijan selaimelle? 2. Kuinka voit tuhota evästeen? 3. Millä funktiolla voit kiertää merkkijonon kyselymerkkijonossa? 4. Mikä sisäinen muuttuja sisältää raa'an kyselymerkkijonon? 5. Kyselymerkkijonon mukana viedyt nimi/arvo-parit ovat saatavilla globaaleina muuttujina. Ne voidaan myös sisällyttää sisäiseen assosiatiiviseen taulukkoon. Mikä sen nimi on?

16 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla Toiminta 1. Luo käyttäjän asetuksia varten lomake, josta käyttäjä voi valita sivun värin ja antaa nimensä. Käytä evästettä varmistamaan, että käyttäjää tervehditään nimellä seuraavilla sivuilla ja että sivuille asetetaan käyttäjän valitsema väri. 2. Muokkaa edellisen tehtävän skriptiä niin, että käyttäjän kirjoittama tieto tallennetaan kyselymerkkijonoon eikä evästeeseen.

Taustaa. CGI-ohjelmointi

Taustaa. CGI-ohjelmointi Taustaa CGI-ohjelmointi CGI = Common Gateway Interface Hyvin yksinkertainen ja helppo tapa toteuttaa dynaamisuutta ja interaktivisuutta htmldokumentteihin Kehitetty tiedon siirtoon palvelimen ja asiakasselaimen

Lisätiedot

13. Pintaa syvemmältä 233

13. Pintaa syvemmältä 233 13. Pintaa syvemmältä 233 OPPITUNTI 13 Pintaa syvemmältä Tällä tunnilla tutkimme joitakin funktioita, joilla saamme informaatiota ympäristöstä tai kommunikoimme ulkoisen maailman kanssa. Tämän tunnin aiheita

Lisätiedot

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: Linux-harjoitus 6 Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

OPPITUNTI 12 MySQL-tietokannan käyttö

OPPITUNTI 12 MySQL-tietokannan käyttö 12. MySQL-tietokannankäyttö 211 OPPITUNTI 12 MySQL-tietokannan käyttö PHP-kieleen kuuluu olennaisesti tietokantojen käyttämisen helppous. Tällä tunnilla keskitymme MySQLtietokantaan, mutta samanlaisia

Lisätiedot

LINUX-HARJOITUS, MYSQL

LINUX-HARJOITUS, MYSQL LINUX-HARJOITUS, MYSQL Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä: http://www.mysql.com/, MySQL-tietokantaohjelman kotisivu. http://www.mysql.com/doc/en/index.html,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

11. oppitunti III. Viittaukset. Osa. Mikä on viittaus?

11. oppitunti III. Viittaukset. Osa. Mikä on viittaus? Osa III 11. oppitunti Viittaukset Kahdessa viime luvussa opit käyttämään osoittimia kohteiden käsittelyyn vapaalla muistialueella sekä viittaamaan noihin kohteisiin epäsuorasti. Tässä luvussa käsiteltävät

Lisätiedot

Harjoitustyö: virtuaalikone

Harjoitustyö: virtuaalikone Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 7.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 7.2.2011 1 / 39 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML

AJAX-konsepti AJAX. Asynkronisuus. Nykyisten web-ohjelmien ongelmia. Asynchronous JavaScript And XML AJAX-konsepti AJAX Asynchronous JavaScript And XML Viimeisin muoti-ilmiö web-ohjelmoinissa, termi Ajax tuli käyttöön vuoden 2005 aikana Joukko teknologioita, joiden avulla voidaan toteuttaa uudenlaisen

Lisätiedot

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas Tiedonhallinnan perusteet Viikko 1 Jukka Lähetkangas Kurssilla käytävät asiat Tietokantojen toimintafilosofian ja -tekniikan perusteet Tiedonsäilönnän vaihtoehdot Tietokantojen suunnitteleminen internetiä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include 15: 16: int main() 17: {

Osa. Listaus 2.1. HELLO.CPP esittelee C++ -ohjelman osat. 14: #include <iostream.h> 15: 16: int main() 17: { Osa I 2. oppitunti C++-ohjelman osat Ennen kuin menemme yksityiskohtaisemmin sisälle C++-luokkiin, -muuttujiin jne, katsokaamme ensin, millaisista osista C++-ohjelma koostuu. Tämän tunnin aikana opit seuraavat

Lisätiedot

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset

Lisätiedot

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja. laskutus_index http://media.stadia.fi/~0700527/laskutus/laskutus_index.html Sivu 1/1 13.12.2007 Laskutus -tietokanta Henkilöiden tiedot: Lisää uuden henkilön tiedot Muuta tai poista henkilön tiedot Selaa

Lisätiedot

12.10.2011. Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle

12.10.2011. Erittäin nopea tapa saada kehitysympäristö php:lle pystyyn Voidaan asentaa muistitikulle (Ei yhtään videota tällä kertaa.) X niin kuin Cross-Platform, Apache, MySql, PHP, Perl Kehitysympäristö EI tuotantokäyttöön Monet tärkeät tietoturva-asetukset ovat oletuksena pois päältä Erittäin nopea

Lisätiedot

SeaMonkey pikaopas - 1

SeaMonkey pikaopas - 1 SeaMonkey pikaopas SeaMonkey on ilmainen ja yksinkertainen www-sivujen teko-ohjelma. Sillä on kätevää koostaa yksinkertaisia sivuja ilman, että täytyy tietää jotain HTML-koodista. Tämä opas esittelee sivuston

Lisätiedot

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä.

3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. PHP-kielen perusteet Käytä lähteenä PHP:n virallista manuaalia http://www.php.net/docs.php tai http://www.hudzilla.org/php (siirry Paul Hudsonin verkkokirjaan). Lisää materiaalia suomeksi esimerkiksi ohjelmointiputkan

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

T-111.361 Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot T-111.361 Hypermediadokumentin laatiminen -Ohjelmointi Peruskäsitys www-ohjelmoinnin kentästä Tekniikat interaktiivisuuden toteuttamiseen tekniikat tekniikat Tietokannat Juha Laitinen TKK/TML juha.laitinen@hut.fi

Lisätiedot

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY 1 WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY 10.4.2015 Lounea Oy Tehdaskatu 6, 24100 Salo Puh. 029 707 00 Y-tunnus 0139471-8 www.lounea.fi Asiakaspalvelu 0800 303 00 Yrityspalvelu 0800 303 01 Myymälät 0800 303

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

Luottamuksellinen sähköposti Trafissa

Luottamuksellinen sähköposti Trafissa OHJE 1 (8) Luottamuksellinen sähköposti Trafissa Trafi käyttää Deltagon Sec@GW -ohjelmistoa sähköpostin luottamuksellisuuden suojaamiseen. D-Envelope sovelluksen avulla viestien vastaanottaminen ei edellytä

Lisätiedot

Tietosuoja-portaali. päivittäjän ohje

Tietosuoja-portaali. päivittäjän ohje Tietosuoja-portaali päivittäjän ohje Maisa Kinnunen 2010 1 Sisältö PÄIVITTÄJÄN OHJE Kirjautuminen...3 Sivujen tekstin muokkaus...4 Tiedostojen lisääminen palvelimelle...9 Jos sinun pitää selvittää tiedoston/kuvan

Lisätiedot

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN

KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN KESKUSTANUORTEN NETTISIVUT- OHJEITA PIIRIYLLÄPITÄJÄLLE 1. KIRJAUTUMINEN -Mene osoitteeseen keskustanuoret.fi/user - Kirjoita saamasi käyttäjätunnus ja salasana - Klikkaa yllä olevaa piirisi logoa niin

Lisätiedot

SQL Buddy JAMK Labranet Wiki

SQL Buddy JAMK Labranet Wiki Page 1 of 9 SQL Buddy JAMK Labranet Wiki Sisällysluettelo Yleistä SQL Buddy:sta kotisivu :http://sqlbuddy.com/ SQL Buddy on kevyt hallintatyökalu MySQL-tietokannalle. Järjestelmävaatimukset Serverin vaatimukset

Lisätiedot

BLOGGER. ohjeita blogin pitämiseen Googlen Bloggerilla

BLOGGER. ohjeita blogin pitämiseen Googlen Bloggerilla BLOGGER ohjeita blogin pitämiseen Googlen Bloggerilla Sisältö Blogin luominen... 1 Uuden blogitekstin kirjoittaminen... 4 Kuvan lisääminen blogitekstiin... 5 Lisää kuva omalta koneelta... 6 Lisää kuva

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36

Written by Administrator Monday, 05 September 2011 15:14 - Last Updated Thursday, 23 February 2012 13:36 !!!!! Relaatiotietokannat ovat vallanneet markkinat tietokantojen osalta. Flat file on jäänyt siinä kehityksessä jalkoihin. Mutta sillä on kuitenkin tiettyjä etuja, joten ei se ole täysin kuollut. Flat

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille: Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin

Lisätiedot

Asko Ikävalko, k0201291 22.2.2004 TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen

Asko Ikävalko, k0201291 22.2.2004 TP02S-D. Ohjelmointi (C-kieli) Projektityö. Työn valvoja: Olli Hämäläinen Asko Ikävalko, k0201291 22.2.2004 TP02S-D Ohjelmointi (C-kieli) Projektityö Työn valvoja: Olli Hämäläinen Asko Ikävalko LOPPURAPORTTI 1(11) Ratkaisun kuvaus Käytetyt tiedostot Tietuerakenteet Onnistuin

Lisätiedot

K U U L A L A A K E R I LUOTTAMUKSELLINEN 1(6)

K U U L A L A A K E R I LUOTTAMUKSELLINEN 1(6) K U U L A L A A K E R I LUOTTAMUKSELLINEN 1(6) Messto HTTP API Messto HTTP API on sovelluskehittäjiä varten kehitetty helppo tapa toteuttaa tekstiviesti- ja multimediaviestisovelluksia. Rajapinnan avulla

Lisätiedot

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT MOBISITE-TYÖKALU MobiSite on työkalu matkapuhelimeen soveltuvan mobiilisivuston rakentamiseen. AIMO-järjestelmän jatkuvasti päivittyvä päätelaitetunnistus tunnistaa useimmat puhelinmallit ja mukauttaa

Lisätiedot

Julkinen. Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje

Julkinen. Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje Muistio 1 (7) Suomen Pankin ja Finanssivalvonnan suojattu sähköposti: ulkoisen käyttäjän ohje Sisällys 1 Johdanto... 1 2 Suojatun viestin vastaanottaminen... 1 3 Suojatun viestin lukeminen... 2 4 Vastaanotetun

Lisätiedot

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

Lisätiedot

Webforum. Version 14.3 uudet ominaisuudet. Viimeisin päivitys: 2014-09-14

Webforum. Version 14.3 uudet ominaisuudet. Viimeisin päivitys: 2014-09-14 Webforum Version 14.3 uudet ominaisuudet Viimeisin päivitys: 2014-09-14 Sisältö Tietoja tästä dokumentista... 3 Yleistä... 4 Yleistä & hallinnointi... 5 Käyttäjien tuonti toiselta alustalta... 5 Uusi sisäänkirjautumisen

Lisätiedot

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti

Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti Tik-76.115 Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu JÄRJESTELMÄN KÄYTTÖOHJE LiKe Liiketoiminnan kehityksen tukiprojekti Versio: 1.1 Tila: hyväksytty Päivämäärä: 13.2.2001

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Käytin tehtävän tekemiseen Xubuntu 13.04 -käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta. Tehtävänanto - Asenna ja testaa LAMP - Aiheuta vähintään 3 virhettä ja analysoi lokista - Tee nimipohjainen virtuaalipalvelin, joissa toimii myös www. (Karvinen, T. 23.09.2013) Työympäristö Tein tehtävän

Lisätiedot

Ohje luottamuksellista tietoa sisältävien sähköpostiviestien lähettämiseen ja vastaanottamiseen

Ohje luottamuksellista tietoa sisältävien sähköpostiviestien lähettämiseen ja vastaanottamiseen Ohje luottamuksellista tietoa sisältävien sähköpostiviestien lähettämiseen ja vastaanottamiseen Liikenteen turvallisuusvirasto 27.9.2012 Sisällysluettelo Luottamuksellista tietoa sisältävien sähköpostiviestien

Lisätiedot

Osoitin ja viittaus C++:ssa

Osoitin ja viittaus C++:ssa Osoitin ja viittaus C++:ssa Osoitin yksinkertaiseen tietotyyppiin Osoitin on muuttuja, joka sisältää jonkin toisen samantyyppisen muuttujan osoitteen. Ohessa on esimerkkiohjelma, jossa määritellään kokonaislukumuuttuja

Lisätiedot

CMS Made Simple Perusteet

CMS Made Simple Perusteet CMS Made Simple Perusteet 1. Hallintaan kirjautuminen Kirjautumisruutuun pääset lisäämällä osakaskuntasi www-osoitteen perään liitteen /admin. Käyttäjätunnuksena toimii onkija ja salasanana postitse saamasi

Lisätiedot

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito

Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Tapahtumakalenteri & Jäsentietojärjestelmä Ylläpito Henri Kinnunen, Seppo Tompuri, Tero Malkki, Matti Heiskanen, Tommi Rönkönharju, Tuomas Valkeapää Sisällysluettelo 1. Alkusanat.2 2. Asennusohje..2 3.

Lisätiedot

Sähköpostitilin käyttöönotto

Sähköpostitilin käyttöönotto Sähköpostitilin käyttöönotto Versio 1.0 Jarno Parkkinen jarno@atflow.fi Sivu 1 / 16 1 Johdanto... 2 2 Thunderbird ohjelman lataus ja asennus... 3 3 Sähköpostitilin lisääminen ja käyttöönotto... 4 3.2 Tietojen

Lisätiedot

1 Yleistä Web-editorista... 3. 1.1 Web-editori -dokumentin luominen... 3. 2 Pikatoimintopainikkeet... 3. 2.1 Tallenna... 3

1 Yleistä Web-editorista... 3. 1.1 Web-editori -dokumentin luominen... 3. 2 Pikatoimintopainikkeet... 3. 2.1 Tallenna... 3 Web-editori 2 Optima Web-editori -ohje Sisällysluettelo 1 Yleistä Web-editorista... 3 1.1 Web-editori -dokumentin luominen... 3 2 Pikatoimintopainikkeet... 3 2.1 Tallenna... 3 2.2 Peru / Tee uudelleen...

Lisätiedot

Ilmoitus saapuneesta turvasähköpostiviestistä

Ilmoitus saapuneesta turvasähköpostiviestistä Tullin turvasähköposti Asiakkaan ohje www.tulli.fi versio 2.2 8.1.2015 Korvaa version 2.1 22.5.2014 Tullin turvasähköposti Tulli lähettää sinulle sähköpostiviestin salattuna silloin, kun viesti tai sen

Lisätiedot

Verkkosivut perinteisesti. Tanja Välisalo 11.2.2009

Verkkosivut perinteisesti. Tanja Välisalo 11.2.2009 Verkkosivut perinteisesti Tanja Välisalo 11.2.2009 WWW-sivujen vieminen omaan kotisivutilaan yliopiston mikroverkossa https://salasana.jyu.fi Klikkaa painiketta Activate WWW Klikkaa painiketta Activate

Lisätiedot

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Esimerkki: Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen Luo tietokanta Koulu. Tietokantaan lisätään 3 taulua. Kurssit-taulu: kurssiid not null primary key INTEGER aineid not

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon

Lisätiedot

CCLEANER PERUSKÄYTTÖ PERUSKÄYTTÖ

CCLEANER PERUSKÄYTTÖ PERUSKÄYTTÖ CCLEANER PERUSKÄYTTÖ Tämän ohjeen avulla puhdistat tietokoneesi turhista, usein tietokoneen käyttöä hidastavista tiedostoista. Ohje opastaa sinua vaihe vaiheelta eteenpäin. CCleaner on luotettava, varmatoiminen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman

Lisätiedot

Toteutusdokumentti. Aija. Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos

Toteutusdokumentti. Aija. Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos Toteutusdokumentti Aija Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos Sisältö 1. Johdanto...3 2. SQL -lauseet...3 3. Ajastettutoiminta - backrun.php...3

Lisätiedot

Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje

Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje Sonera Viestintäpalvelu VIP VIP Laajennettu raportointi Ohje Sisällysluettelo VIP Laajennettu raportointi... 3 Luo raportti Laajennetun raportoinnin työkaluilla... 4 Avaa Laajennettu raportointi... 4 Valitse

Lisätiedot

1.1 Internetistä lyhyesti. Mikä Internet on? 1.2 Maailmanlaajuinen verkko

1.1 Internetistä lyhyesti. Mikä Internet on? 1.2 Maailmanlaajuinen verkko 1.1 Internetistä lyhyesti Alkuperä: - ARPAnet 1960-luvun loppu, 1970-luvun alku - Verkon luotettavuus - ARPA organisaatioit (Advanced Research Projects Agency) - BITnet, CSnet 1970-luvun loppu ja 1980-luvun

Lisätiedot

Hallintaliittymän käyttöohje

Hallintaliittymän käyttöohje Hallintaliittymän käyttöohje 1. Yleisiä huomioita Hallintaliittymän käyttöä helpottavia yleisiä huomioita: - Käytä listanäkymien hakukentissä kentän vieressä olevaa hakunappia, älä enter-näppäintä. - Älä

Lisätiedot

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014

PHP tehtävä 3 Atte Pekarinen TIKT13A 4.12.2014 PHP-kielen perusteet 3.1 Mitä tarkoittaan heredoc? Milloin sitä kannattaa käyttää? Kirjoita esimerkki sen käyttämisestä. Heredoc on ominaisuus PHP-koodaamisessa, jolla voidaan kirjoittaa pitkiä tekstejä

Lisätiedot

Web-sovellusten testaus

Web-sovellusten testaus Web-sovellusten testaus Testityypit web-sovellukselle Toiminnallisuus Yhteensopivuustestaus Käytettävyys Suorituskykytestaus Tietoturvatestaus Rajapintojen testaaminen GET -pyyntö REQUEST: GET http://www.cybercom.com:80/

Lisätiedot

Asiointipalvelun ohje

Asiointipalvelun ohje Asiointipalvelun ohje Yleistä 1. Kirjautuminen 2. Yhteystiedot 3. Vastaustavan valinta 1. Yleistä 2. Palkkatietojen lataaminen tiedostosta 4. Lomake 1. Yleistä 2. Linkit ja vastaajan tiedot 3. Lomakekäsittely

Lisätiedot

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI Tavoite: Suunnitella käyttäjien tarvitsemat turvallisuusmekanismit ja säännöt. Toisin sanoen: tehdä tietokannasta turvallinen ja luotettava. Muistutus: Tietokanta

Lisätiedot

Tässä ohjeessa käydään läpi sosiaalisen median verkkopalveluiden lisätoimintojen lisääminen verkkosivuillesi.

Tässä ohjeessa käydään läpi sosiaalisen median verkkopalveluiden lisätoimintojen lisääminen verkkosivuillesi. SOSIAALINEN MEDIA Tässä ohjeessa käydään läpi sosiaalisen median verkkopalveluiden lisätoimintojen lisääminen verkkosivuillesi. FACEBOOK Facebook mahdollistaa useiden erilaisten Social plugins -toimintojen

Lisätiedot

OHJEET: 1.1 Lomakkeiden tallennus ja käyttötarkoitus

OHJEET: 1.1 Lomakkeiden tallennus ja käyttötarkoitus OHJEET: 1.1 Lomakkeiden tallennus ja käyttötarkoitus Tallenna tarvitsemanne tiedostot yhteiskäyttöiselle koneelle tai palvelimelle, jonne kaikilla on pääsy. Jos käytät atk-luokkaa, tallenna lomakkeet sellaiseen

Lisätiedot

WWW-sivu. Miten Internet toimii? World Wide Web. HTML-koodi. HTTP-istunto URL <#>

WWW-sivu. Miten Internet toimii? World Wide Web. HTML-koodi. HTTP-istunto URL <#> WWW-sivu Miten Internet toimii? HTML-koodi World Wide Web Nixu International

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Miten Internet toimii. Tuomas Aura T-110.2100 Johdatus tietoliikenteeseen kevät 2013

Miten Internet toimii. Tuomas Aura T-110.2100 Johdatus tietoliikenteeseen kevät 2013 Miten Internet toimii Tuomas Aura T-110.2100 Johdatus tietoliikenteeseen kevät 2013 Luennon sisältö 1. Esimerkki 1: nettiselailu 2. Esimerkki 2: sähköposti 3. Internetin protokollapino 2 ESIMERKKI 1: NETTISELAILU

Lisätiedot

Ylläpitodokumentti Labra

Ylläpitodokumentti Labra Ylläpitodokumentti Labra Helsinki 26.8.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Kurssi 581260 Ohjelmistotuotantoprojekti (9+1op) Projektiryhmä Anssi Kapanen,

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja

Lisätiedot

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille KServer Etäohjaus 1 (5) KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille Palvelimen toteutuksen ollessa versio 1.0, spesifikaation versio 1.0.0. 2009, Riku Eskelinen/ KServer Software Development

Lisätiedot

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia)

JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) JavaScript alkeet Esimerkkikoodeja moniste 2 (05.10.11 Metropolia) Esim 5.1 laskujärjestys operaattorit var tulos = 5 + 4 * 12 / 4; document.write("5 + 4 * 12 / 4 laskutoimituksen tulos

Lisätiedot

Epooqin perusominaisuudet

Epooqin perusominaisuudet Epooqin perusominaisuudet Huom! Epooqia käytettäessä on suositeltavaa käyttää Firefox -selainta. Chrome toimii myös, mutta eräissä asioissa, kuten äänittämisessä, voi esiintyä ongelmia. Internet Exploreria

Lisätiedot

MOODLE TUTUKSI. Pirkko Vänttilä Oulun aikuiskoulutuskeskus 4.8.2008

MOODLE TUTUKSI. Pirkko Vänttilä Oulun aikuiskoulutuskeskus 4.8.2008 2008 MOODLE TUTUKSI Pirkko Vänttilä Oulun aikuiskoulutuskeskus 4.8.2008 SISÄLLYSLUETTELO 1. ALOITUSNÄKYMÄ... 4 2. TUTUSTUMINEN... 5 3. KESKUSTELUT... 8 4. VIESTIT... 10 5. CHATIT... 10 6. TIEDOSTOJA OMALTA

Lisätiedot

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION Salasanojen hallinta Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION Restaurant Enterprise Solution Asiakirjan tarkoitus Tämä asiakirja kertoo tarvittavat säännöt kuinka hallinnoida RES salasanoja

Lisätiedot

Maventa Connector Käyttöohje

Maventa Connector Käyttöohje Maventa Connector Käyttöohje 17.4.2015 Sisällys 1. Esittely... 2 1.1. Käytön edellytykset... 2 1.2. Tuetut aineistomuodot... 2 2. Asennustiedosto... 3 2.1. Sisäänkirjautuminen... 7 3. Asetuksien määrittäminen...

Lisätiedot

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo 15.2.2006 TURUN YLIOPISTO DEMO III Informaatioteknologian laitos tehtävät Olio-ohjelmoinnin perusteet / Salo 15.2.2006 1. Tässä tehtävässä tarkastellaan erääntyviä laskuja. Lasku muodostaa oman luokkansa. Laskussa

Lisätiedot

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne Kotisivuohjeet Tässä ohjeessa käydään läpi kotisivujen tekemisen perusteet keskittyen html-koodiin ja sen ominaisuuksiin. Sivupohjissa ulkoasu ja rakenne on pääasiassa jaettu erilliseen css-tyylitiedostoon,

Lisätiedot

elearning Salpaus http://elsa.salpaus.fi Elsa-tutuksi

elearning Salpaus http://elsa.salpaus.fi Elsa-tutuksi elearning Salpaus http://elsa.salpaus.fi Elsa-tutuksi SISÄLLYSLUETTELO 1 MIKÄ ON ELSA, ENTÄ MOODLE?... 3 1.1 MITÄ KURSSILLA VOIDAAN TEHDÄ?... 3 2 KURSSILLE KIRJAUTUMINEN... 3 3 KURSSILLE LIITTYMINEN...

Lisätiedot

Open Badge -osaamismerkit

Open Badge -osaamismerkit Open Badge -osaamismerkit Merkin vastaanottaminen 2 "#$%&'()$*+,''-.,-$/0.1 "#$%&&'$ =>;+?.@@'A$/,+%'*1B%%B0,$%@B+-.%$% C 2>D./E'B1B-.%$%;+?.@@'&'()$&'F0#'F0..% G C>"#$%&'()$H'F1+/I,1'-IJ%%$1I%"#$%&'()$*+,''-.,-$/0.%

Lisätiedot

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset

815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset 815338A Ohjelmointikielten periaatteet 2014-2015. Harjoitus 7 Vastaukset Harjoituksen aiheena on funktionaalinen ohjelmointi Scheme- ja Haskell-kielillä. Voit suorittaa ohjelmat osoitteessa https://ideone.com/

Lisätiedot

Ohjelman käyttöön ei sisälly muita kuluja kuin ohjelman lisenssimaksu ja mahdolliset webbipalvelusi käyttömaksut.

Ohjelman käyttöön ei sisälly muita kuluja kuin ohjelman lisenssimaksu ja mahdolliset webbipalvelusi käyttömaksut. Kotisivu ohje Kotisivu - ohjelmisto on webbipohjainen kotisivujen julkaisujärjestelmä jossa käyttäjä ei tarvitse erityistaitoja kyetäkseen julkaisemaan webbisivuja. Jos osaat käyttää Microsoft Word tekstinkäsittelyohjelmaa,

Lisätiedot

Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla. Mika Suvanto, CSC. mika.suvanto@csc.fi 3.9.2009

Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla. Mika Suvanto, CSC. mika.suvanto@csc.fi 3.9.2009 Haka-palveluiden valvonta ja tilastointi AAIEye -työkalun avulla Mika Suvanto, CSC mika.suvanto@csc.fi 3.9.2009 Mitä se tekee? kaksi perustoimintoa: valvoo Haka-palveluiden toimintaa kirjautumalla niihin

Lisätiedot

ASCII-taidetta. Intro: Python

ASCII-taidetta. Intro: Python Python 1 ASCII-taidetta All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do.

Lisätiedot

VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN

VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN Tämän tehtävän tarkoitus on tutustuttaa ympäristöön sekä tutustuttaa wwwdokumenttien tekoon php:llä. Alkutoimet Varmistetaan, että verkkolevyllä on kansio

Lisätiedot

Taulukot. 2002 Päivi Vartiainen 1

Taulukot. 2002 Päivi Vartiainen 1 Taulukot Taulukon lisääminen FrontPagessa tapahtuu samalla tavoin kuin Word tekstinkäsittelyohjelmassakin. Valitse vakiotyökaluriviltä Lisää taulukko painike. Kun olet napsauttanut painikkeen alas voit

Lisätiedot

Tietokannan luominen:

Tietokannan luominen: Moodle 2 Tietokanta: Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia, linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat,

Lisätiedot

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013

Pauliina Munter / Suvi Junes Tampereen yliopisto/tietohallinto 2013 Tehtävä 2.2. Tehtävä-työkalun avulla opiskelijat voivat palauttaa tehtäviä Moodleen opettajan arvioitaviksi. Palautettu tehtävä näkyy ainoastaan opettajalle, ei toisille opiskelijoille. Tehtävä-työkalun

Lisätiedot

VIENET JULKAISUJÄRJESTELMÄLLÄ TOTEUTETTUJEN INTERNET-SIVUJEN YLLÄPITO-OHJE

VIENET JULKAISUJÄRJESTELMÄLLÄ TOTEUTETTUJEN INTERNET-SIVUJEN YLLÄPITO-OHJE VIENET JULKAISUJÄRJESTELMÄLLÄ TOTEUTETTUJEN INTERNET-SIVUJEN YLLÄPITO-OHJE JULKAISUJÄRJESTELMÄÄN KIRJAUTUMINEN. Osoitekenttään kirjoitetaan www.domain.fi/admin. Kirjoita käyttäjätunnus: xxxxxx. Salasana:

Lisätiedot

NÄIN TEET VIDEO-MAILIN (v-mail)

NÄIN TEET VIDEO-MAILIN (v-mail) 1 NÄIN TEET VIDEO-MAILIN (v-mail) Kirjaudu iwowwe Back Officeen. HOME Klikkaa kotisivullasi (HOME) olevaa vihreää Video E-mail kuvaa Vastaava linkki Video Email on myös Video Tools - alasvetovalikossa

Lisätiedot

UTIFLEET-VARAUSJÄRJESTELMÄ KÄYTTÄJÄN OHJE. Gospel Flight ry

UTIFLEET-VARAUSJÄRJESTELMÄ KÄYTTÄJÄN OHJE. Gospel Flight ry UTIFLEET-VARAUSJÄRJESTELMÄ Gospel Flight ry Versio 1.0 Hyväksytty Tekijä 1.11.2005 Tarkastanut 1.11.2005 Hyväksynyt Juha Huttunen 3.11.2005 Helia UTIFLEET-TIETOJÄRJESTELMÄ 2 SISÄLLYS 1 SOVELLUKSEN KÄYTTÖOIKEUDET

Lisätiedot

ProTieto Oy. Verottajan ilmoitus. Käyttöohje alihankkijoille

ProTieto Oy. Verottajan ilmoitus. Käyttöohje alihankkijoille ProTieto Oy Verottajan ilmoitus Käyttöohje alihankkijoille Sisällys 1. Yleistä... 2 2. Rekisteröityminen... 2 3. Kirjautuminen... 2 4. Web-liittymä... 3 4.1 Yrityksen tiedot... 3 4.2 Omat suomalaiset työntekijät...

Lisätiedot