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.

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

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

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

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA Sisällysluettelo Luku 1 - Oman LABRA-sivutilan asennus ja käyttöönotto... 2 1.1 - LABRA-osoitteesi... 2 1.2 LABRA-tilan käyttö (verkko-asemana

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

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

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

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

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö Tekijät: Eemeli Honkonen Joni Metsälä Työ palautettu: SISÄLLYSLUETTELO: 1 SEMINAARITYÖN KUVAUS... 3 2 TIETOKANTA... 3 2.1 MITÄ TIETOKANNAT SITTEN OVAT?... 3

Lisätiedot

QR-koodit INNOSTAVAA HAUSKAA PALJON KÄYTTÖTAPJA HELPPOA ILMAISTA MOTIVOIVAA

QR-koodit INNOSTAVAA HAUSKAA PALJON KÄYTTÖTAPJA HELPPOA ILMAISTA MOTIVOIVAA QR-koodit QR-koodit INNOSTAVAA HAUSKAA PALJON KÄYTTÖTAPJA HELPPOA MOTIVOIVAA ILMAISTA QR-koodi paljon tietoa Koodin avulla pääsee nopeasti halutulle verkkosivulle tai esim. YouTube-videoon ilman osoitteen

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

DNA Toimistoviestintä Microsoft - sähköposti

DNA Toimistoviestintä Microsoft - sähköposti DNA Toimistoviestintä Microsoft - sähköposti 30.10.2013 Luottamuksellinen MS Outlook, Standard postitilin asennus 1/6 Käynnistä Outlook 2010. Seuraava näyttö avautuu Valitse Next (Seuraava). 2 MS Outlook,

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

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

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

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

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

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

Www-tallennuksen käyttöohje

Www-tallennuksen käyttöohje OPETUSHALLITUS Laskentapalvelut puh: (09) 7747 7090 E-mail: laskentapalvelut@oph.fi Www-tallennuksen käyttöohje Sisällys Käyttäjätunnukset Koulutuksen järjestäjä (saajatunnus) Laitokset/koulutusmuodot

Lisätiedot

Kopiodaksesi, leikataksesi ja liittääksesi helpointa on käyttää näppäimistön pikavalintoja:

Kopiodaksesi, leikataksesi ja liittääksesi helpointa on käyttää näppäimistön pikavalintoja: Ohjeita järjestöpankin käytön tueksi Huomioitavaa:... 1 1 Sisäänkirjautuminen... 2 2 Sivun/henkilökortin muokkaaminen... 2 3 Uutisen/sivun/tapahtuman, tms. lisääminen... 3 4 Uutisen/tapahtuman saaminen

Lisätiedot

GroupWise Calendar Publishing Host User

GroupWise Calendar Publishing Host User GroupWise 8 Calendar Publishing Host User 8 17. lokakuu 2008 Novell GroupWise Calendar Publishing Host User PIKAKÄYNNISTYS www.novell.com YLEISTÄ Novell GroupWise Calendar Publishing Host User on Web-pohjainen

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

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

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012 Tiedostot Uudet ominaisuudet: - Ei Tiedostot-kohtaa alueen sisällä, vaan tiedostonvalitsin, jolla tiedostot tuodaan alueelle siihen kohtaan missä ne näytetään - Firefox-selaimella voi työpöydältä raahata

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

Juricon Nettisivu Joomlan käyttöohjeet

Juricon Nettisivu Joomlan käyttöohjeet Juricon Nettisivu Joomlan käyttöohjeet Sisällysluettelo Julkaisujärjestelmä hallinta... 3 Joomla-järjestelmän ylävalikolla on seuraavia:... 3 Valikot... 4 Kategoriat ja artikkelit... 5 Lisäosat ja moduulien

Lisätiedot

EU Login. EU Login kirjautuminen. EU Login tilin luominen

EU Login. EU Login kirjautuminen. EU Login tilin luominen EU Login EU Login kirjautuminen EU Login järjestelmä mahdollistaa keskitetyn pääsyn useisiin eri Euroopan Komission verkkosovelluksiin yhdellä käyttäjätunnuksella ja salasanalla. EU login varmistaa identiteettisi

Lisätiedot

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014 Tietokanta Tietokanta on työkalu, jolla opettaja ja opiskelijat voivat julkaista tiedostoja, tekstejä, kuvia ja linkkejä alueella. Opettaja määrittelee lomakkeen muotoon kentät, joiden kautta opiskelijat

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

Osallistavan suunnittelun kyselytyökalu

Osallistavan suunnittelun kyselytyökalu Osallistavan suunnittelun kyselytyökalu Käyttöohje ARFM- hankkeessa jatkokehitetylle SoftGIS-työkalulle Dokumentti sisältää ohjeistuksen osallistavan suunnittelun työkalun käyttöön. Työkalu on käytettävissä

Lisätiedot

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

Kirkkopalvelut Office365, Opiskelijan ohje 1 / 17 IT Juha Nalli 22.12.2015

Kirkkopalvelut Office365, Opiskelijan ohje 1 / 17 IT Juha Nalli 22.12.2015 Kirkkopalvelut Office365, Opiskelijan ohje 1 / 17 Oppilaat saavat vuoden 2016 alusta käyttöönsä oppilaitoksen sähköpostin ja muita palveluita Microsoftin Office365:sta. Oppilaiden sähköposti on muotoa

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

Lisätiedot

Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1

Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1 1. Testattavat asiat Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1 selainyhteensopivuustesti käyttäen Suomessa eniten käytössä olevia selaimia. Uuden keräyksen lisääminen

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

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten

Lisätiedot

Kuukauden kuvat kerhon galleriaan 1.4.2016 lähtien kuukaudenkuvaajan kuvagalleria on siirretty uudelle palvelimelle osoitteeseen:

Kuukauden kuvat kerhon galleriaan 1.4.2016 lähtien kuukaudenkuvaajan kuvagalleria on siirretty uudelle palvelimelle osoitteeseen: Kuukauden kuvat kerhon galleriaan 1.4.2016 lähtien kuukaudenkuvaajan kuvagalleria on siirretty uudelle palvelimelle osoitteeseen: http://www.kamera73.fi/kuukaudenkuvaaja Kukin seuran jäsen voi laittaa

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

Lisätiedot

,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU

,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU ,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU Tässä pääsette tutustumaan Internet Explorerin (IE) käyttöön. Muitakin selainversioita löytyy, kuten esimerkiksi Netscape, Opera ja Mozilla. Näiden muiden selainten

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

Lisätiedot

Open Badge osaamismerkin vastaanottaminen

Open Badge osaamismerkin vastaanottaminen Open Badge osaamismerkin vastaanottaminen 2 Open Badge -osaamismerkit Open badge on Mozilla.org:n kehittämä osaamismerkkijärjestelmä, joka on Mozillan osalta vielä betavaiheessa; tuotantovaiheeseen siirrytään

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

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

Painonhallinta. Kirjaudu sovellukseen antamalla käyttäjätunnus ja salasana.

Painonhallinta. Kirjaudu sovellukseen antamalla käyttäjätunnus ja salasana. Painonhallinta Sisäänkirjautuminen Kirjaudu sovellukseen antamalla käyttäjätunnus ja salasana. Kuva 1 Sisäänkirjautuminen Yleistä Painonhallinta toimii internet-selaimella, mutta liikuttaessa sovelluksessa,

Lisätiedot

Ohjelmoinnin peruskurssi Y1

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

Lisätiedot

Rakennusten elinkaarimittareiden verkkotyökalun käyttöohje. www.360optimi.com/kiinteistopassi

Rakennusten elinkaarimittareiden verkkotyökalun käyttöohje. www.360optimi.com/kiinteistopassi Rakennusten elinkaarimittareiden verkkotyökalun käyttöohje www.360optimi.com/kiinteistopassi Bionova Consulting, luottamuksellinen Viimeksi päivitetty 9. syyskuuta 2014 Käyttöohjeen sisällysluettelo Luo

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")

Lisätiedot

Informaatiotekniikan kehitysyksikkö

Informaatiotekniikan kehitysyksikkö SAVONIA Savonia RPM Käyttöopas Informaatiotekniikan kehitysyksikkö 18.8.2011 Sisällysluettelo 1. Perusnäkymä... 3 2. Kirjautuminen... 4 3. Rekisteröinti... 5 4. Idean jättäminen... 6 4. Arviointi... 8

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

VALIKON LISÄÄMINEN Moduulin lisääminen Valikon nimikkeen lisääminen Moduulien järjestyksen muuttaminen

VALIKON LISÄÄMINEN Moduulin lisääminen Valikon nimikkeen lisääminen Moduulien järjestyksen muuttaminen ETAPPI ry JOOMLA 2.5 VALIKON LISÄÄMINEN Moduulin lisääminen Valikon nimikkeen lisääminen Moduulien järjestyksen muuttaminen ETAPPI ry JOOMLA 2.5 Sivu 1(13) Sisällysluettelo 1. Uuden valikon lisääminen...

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

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 Ohje 1 (10) 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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

FORMATIIVINEN ARVIOINTI

FORMATIIVINEN ARVIOINTI FORMATIIVINEN ARVIOINTI (OHJEISTUKSESSA KÄYTETTY VISMAN YLEISIÄ OHJEITA FORMATIIVISEN ARVIOINNIN TEKEMISESTÄ. LISÄTIETOJA VISMA.FI) 1 OPETTAJAN ARVIOINTINÄKYMÄ Opettaja pääsee tekemään formatiivista arviointia

Lisätiedot

Opera Hotel Edition. Arvonlisäverokantojen muutos Operaan 01.07.2010. Finland. Toukokuu 2010 MICROS-Fidelio Finland Oy, Hotel Systems HelpDesk

Opera Hotel Edition. Arvonlisäverokantojen muutos Operaan 01.07.2010. Finland. Toukokuu 2010 MICROS-Fidelio Finland Oy, Hotel Systems HelpDesk Opera Hotel Edition Arvonlisäverokantojen muutos Operaan 01.07.2010 Toukokuu 2010 MICROS-Fidelio Finland Oy, Hotel Systems HelpDesk Sivu / Page: 1 / 15 Document revision history Version Revision Author

Lisätiedot

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu 1312A Tietorakenteet ja algoritmit, 2016-2017, Harjoitus 5, Ratkaisu Harjoituksen aihe ovat hash-taulukot ja binääriset etsintäpuut Tehtävä 5.1 Tallenna avaimet 10,22,31,4,15,28,17 ja 59 hash-taulukkoon,

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

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit Liite E - Esimerkkiprojekti E Esimerkkiprojekti Olet lukenut koko kirjan. Olet sulattanut kaiken tekstin, Nyt on aika soveltaa oppimiasi uusia asioita pienen, mutta täydellisesti muotoiltuun, projektiin.

Lisätiedot

KÄYTTÖOHJE / Ver 1.0 / Huhtikuu WordPress KÄYTTÖOHJE Sotkamo 2016

KÄYTTÖOHJE / Ver 1.0 / Huhtikuu WordPress KÄYTTÖOHJE Sotkamo 2016 / / WordPress KÄYTTÖOHJE Sotkamo 2016 Sisältö Sisältö 1. Yleistä 2. Kirjautuminen ylläpitoon 2.1. Kirjaudu osoitteessa: http://sotkamo.valudata.fi/admin Myöhemmin: http://www.sotkamo.fi/admin 2.2 Salasana

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast

Lisätiedot

Harri Laine 1. Digitaalisen median tekniikat, s2007 HY/TKTL, palvelinohjelmointi_1. Palvelinohjelmointi

Harri Laine 1. Digitaalisen median tekniikat, s2007 HY/TKTL, palvelinohjelmointi_1. Palvelinohjelmointi Digitaalisen median tekniikat Staattinen www-sivu Palvelimelle tallennettu valmis sivu Sama URL antaa aina saman sisällön Teknisesti sivu voi muodostua monesta osasta, esimerkiksi kuvat ovat eri tiedostoja

Lisätiedot

MY STANDARD -OHJE. mystandard.hansaworld.com. Standard ERP Pilvipalvelu Sivu 1/6

MY STANDARD -OHJE. mystandard.hansaworld.com. Standard ERP Pilvipalvelu Sivu 1/6 MY STANDARD -OHJE mystandard.hansaworld.com Standard ERP Pilvipalvelu Sivu 1/6 KÄYTTÖÖNOTTO Mikäli Standard ERP -ohjelmistonne on HansaWorldin pilvipalvelimella (hostingissa), teidän on mahdollista hallinnoida

Lisätiedot

Miten siirrän omat työni Office 365:stä Peda.nettiin sekä jaan sen siellä muille Eija Arvola

Miten siirrän omat työni Office 365:stä Peda.nettiin sekä jaan sen siellä muille Eija Arvola Miten siirrän omat työni Office 365:stä Peda.nettiin sekä jaan sen siellä muille Eija Arvola 16.12.2017 UUDEN SIVUN LUOMINEN OMAAN TILAAN Jos haluat tallentaa omia töitäsi Peda.nettiin, sinun pitää luoda

Lisätiedot

VINKKEJÄ CV-NETIN KÄYTTÖÖN. www.te-palvelut.fi

VINKKEJÄ CV-NETIN KÄYTTÖÖN. www.te-palvelut.fi VINKKEJÄ CV-NETIN KÄYTTÖÖN www.te-palvelut.fi TE-toimiston verkkoasiointiin pääset kirjautumaan www.te-palvelut.fi Oma asiointi Henkilöasiakas Kirjaudu sisään verkkopankkitunnuksilla ja hyväksy käyttöehdot

Lisätiedot

Artikkelin lisääminen

Artikkelin lisääminen Sisällys Artikkelin lisääminen...3 Artikkelin muokkaaminen...5 Kuvan lisääminen artikkeliin...6 Väliotsikoiden lisääminen artikkeliin...9 Navigointilinkin lisääminen valikkoon...10 Käyttäjätietojen muuttaminen...13

Lisätiedot

Inteno DG201R1 / EG500(R1) modeemi - päivitysohje

Inteno DG201R1 / EG500(R1) modeemi - päivitysohje 1 (11) Inteno DG201R1 / EG500(R1) modeemi - päivitysohje Tätä ohjetta tai sen osaa ei saa kopioida tai välittää missään muodossa ilman DNA Oy:n kirjallista suostumusta. Tavaramerkit ja Inteno ovat Inteno

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

Käyttöohje alayksikkökoodiston tarkastamiseen ja täydentämiseen

Käyttöohje alayksikkökoodiston tarkastamiseen ja täydentämiseen Käyttöohje alayksikkökoodiston tarkastamiseen ja täydentämiseen Alayksikkökoodistossa näkyvät kaikki korkeakoulujen, yliopistosairaaloiden ja tutkimuslaitosten alayksiköt ja näihin liitetyt OKM:n ohjauksen

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 29.3.2016 CSE-A1200 Tietokannat 29.3.2016 1 / 40 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat

Lisätiedot

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari

JWT 2016 luento 11. to 21.4.2016 klo 14-15. Aulikki Hyrskykari. PinniB 1097. Aulikki Hyrskykari JWT 2016 luento 11 to 21.4.2016 klo 14-15 Aulikki Hyrskykari PinniB 1097 1 Viime luennolla o AJAX ja JSON, harjoitustyön tehtävänanto, vierailuluento avoimesta datasta Tänään o APIt rajapinnoista yleisesti

Lisätiedot

Ohjelmoinnin perusteet Y Python

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

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Orio Portaali Käyttäjäopas v1.0

Orio Portaali Käyttäjäopas v1.0 Orion Orio Portaali Käyttäjäopas v1.0 SISÄLLYS Liity asiakkaaksi 02 Kirjautuminen 03 Tuotehaku 03 Ostoskori 05 Normaalin tilauksen tekeminen 06 Tilaushistoria 08 Asiakaspalvelu ja yleistä tietoa 09 orio.com

Lisätiedot

E-RESULTS LITE -OHJEET

E-RESULTS LITE -OHJEET E-RESULTS LITE -OHJEET 1 ALKUVALMISTELUT Huolehdi ennen rastiesi pitoa, että Tulospalvelutietokoneen akku on ladattu täyteen Seuran EMIT-kortit ovat tallessa ja selkeästi erillään lähtöleimasimesta. Lähtö-

Lisätiedot

Kangasniemen yrityshakemisto KÄYTTÖOHJE YRITTÄJÄLLE. KANGASNIEMEN KUNTA yrityshakemisto.kangasniemi.fi

Kangasniemen yrityshakemisto KÄYTTÖOHJE YRITTÄJÄLLE. KANGASNIEMEN KUNTA yrityshakemisto.kangasniemi.fi 2015 Kangasniemen yrityshakemisto KÄYTTÖOHJE YRITTÄJÄLLE KANGASNIEMEN KUNTA yrityshakemisto.kangasniemi.fi 1 Sisällysluettelo 1. Sivustolle rekisteröityminen... 2 2. Yrityksen lisääminen... 3 2.1. Yritystiedot...

Lisätiedot

Nettiposti. Nettiposti käyttöohje

Nettiposti. Nettiposti käyttöohje YKSIKÄÄN ASIAKAS EI OLE MEILLE LIIAN PIENI TAI MIKÄÄN HAASTE LIIAN SUURI. Nettiposti Nettiposti käyttöohje Tässä käyttöohjeessa kuvataan selainkäyttöisen Nettiposti sähköpostiohjelman toiminnot. Käyttöohje

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Ylläpitoalue - Etusivu

Ylläpitoalue - Etusivu Crasmanager 5.2 Ylläpitoalue - Etusivu Sivut osiossa sisällön selaus ja perussivujen ylläpito. Tietokannat osiossa tietokantojen ylläpito. Tiedostot osiossa kuvien ja liitetiedostojen hallinta. Työkalut

Lisätiedot

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

Lisätiedot

Yksityisautoilijoille ABAX AJOPÄIVÄKIRJA

Yksityisautoilijoille ABAX AJOPÄIVÄKIRJA The difference is ABAX Yksityisautoilijoille ABAX AJOPÄIVÄKIRJA The difference is ABAX 2 The difference is ABAX ABAX SÄHKÖINEN AJOPÄIVÄKIRJA Tähän esitteeseen on koottu vastauksia kysymyksiin, jotka liittyvät

Lisätiedot

OPAS VERKKOLASKUTUKSEEN

OPAS VERKKOLASKUTUKSEEN OPAS VERKKOLASKUTUKSEEN 1 Sisällysluettelo Sisällysluettelo. 2 1. Passeliin kirjautuminen. 3 2. Luo uusi asiakas asiakaskortistoon.. 3 3. Uuden laskun tekeminen.. 5 4. Laskun lähettäminen verkkolaskuna...

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä

Lisätiedot

Palaute. Asetukset: Nimeä palaute ja kirjoita kuvaus tai ohjeet.

Palaute. Asetukset: Nimeä palaute ja kirjoita kuvaus tai ohjeet. Palaute Palaute -työkalulla opettaja voi rakentaa kyselyn, johon opiskelijat vastaavat joko anonyymisti tai nimellään. Opettaja voi tarkastella vastauksia koosteena tai yksitellen. Asetukset: Nimeä palaute

Lisätiedot

RockID-varastonhallintajärjestelmän käyttöohje. v. 1.0

RockID-varastonhallintajärjestelmän käyttöohje. v. 1.0 RockID-varastonhallintajärjestelmän käyttöohje v. 1.0 Yleistä Rockstar lukijakäyttöliittymä Tuotteiden lukeminen lähtevään tilaukseen Tilaukseen kuulumattomat tuotteet Tuotteiden lukeminen tilauksesta

Lisätiedot

Mainosankkuri.fi-palvelun käyttöohjeita

Mainosankkuri.fi-palvelun käyttöohjeita Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...

Lisätiedot

Omapalvelun ka ytto ohjeet

Omapalvelun ka ytto ohjeet Omapalvelun ka ytto ohjeet 1 Sisällys Etusivu ja omat tiedot... 2 Hakemuksen täyttäminen... 3 Välitallennus... 3 Keskeneräisen hakemuksen täyttäminen... 4 Liitteiden täydentäminen jälkikäteen... 5 Hakemuksen

Lisätiedot

Wilman käyttöohje huoltajille

Wilman käyttöohje huoltajille Wilman käyttöohje huoltajille Sisällysluettelo: Sisään kirjautuminen... 1 Oma etusivu... 2 Pikaviestit... 3 Tiedotteet... 5 Suoritukset... 6 Poissaolot... 6 Palaute... 8 Opettajat... 9 Salasanan vaihto...

Lisätiedot

Hgin kaupungin opetusvirasto Wilma opas huoltajille 1(10) HAKE/Tiepa 28.2.2007 KKa

Hgin kaupungin opetusvirasto Wilma opas huoltajille 1(10) HAKE/Tiepa 28.2.2007 KKa Hgin kaupungin opetusvirasto Wilma opas huoltajille 1(10) :LOPD 0LNl:LOPDRQ" Wilma on internetin kautta toimiva liittymä opettajille, oppilaille ja näiden huoltajille. Se ei ole käyttäjän koneella oleva

Lisätiedot

Kuva: Ilpo Okkonen

Kuva: Ilpo Okkonen OodiHOPS OHJAAJAN OHJE 14.2.2017 Kuva: Ilpo Okkonen OodiHOPS Oulun yliopistossa Oulun yliopiston koulutusneuvosto on päättänyt, että OodiHOPS-toiminto otetaan käyttöön vähintään aloittavilla opiskelijoilla

Lisätiedot

Pauliina Munter/Suvi Junes Tampereen yliopisto / Tietohallinto Valitse muokkaustila päälle kurssialueen etusivun oikean yläkulman painikkeesta.

Pauliina Munter/Suvi Junes Tampereen yliopisto / Tietohallinto Valitse muokkaustila päälle kurssialueen etusivun oikean yläkulman painikkeesta. Sanasto Sanasto -työkalulla voi laatia sanakirjan tapaisen sanaston, jonka hakusanoja (käsitteitä ja niiden määritelmiä) voidaan selata ja opettajan niin halutessa myös kommentoida. Sekä opettaja että

Lisätiedot