OSA III PHP:n käyttö. Oppitunti

Koko: px
Aloita esitys sivulta:

Download "OSA III PHP:n käyttö. Oppitunti"

Transkriptio

1 OSA III PHP:n käyttö Oppitunti 9. Lomakkeiden käsittely 10. Tiedostojen käsittely 11. DBM-funktioiden käyttö 12. MySQL-tietokantojen integrointi 13. Pintaa syvemmältä 14. Dynaamisten kuvien käsittely 15. Päivämäärien käyttö 16. Tiedon käsittely 17. Merkkijonojen käsittely 18. Säännöllisten ilmausten käyttö 19. Tilan tallentaminen evästeille ja kyselymerkkijonoilla 20. Tilan tallentaminen istuntofunktioilla 21. Palvelimen ympäristön käsittely 22. Vianhaku

2

3 9. Lomakkeiden käsittely 151 OPPITUNTI 9 Lomakkeiden käsittely Toistaiseksi kaikista kirjan esimerkeistä on puuttunut eräs tärkeä ulottuvuus. Voimme nyt määritellä muuttujia ja taulukoita, luoda ja kutsua funktioita ja työskennellä olioilla. Kaikki tuo on merkityksetöntä, jos käyttäjät eivät pääse tarjoamaan tietoa kielen ympäristön käyttöön. Tällä tunnilla tutkimme menettelytapoja, joilla siepataan tietoa käyttäjältä ja työskennellään tuolla tiedolla. World Wide Web -maailmassa HTML-lomakkeet ovat peruskeino kerätä tietoa käyttäjältä ja viedä tuo tieto palvelimelle. PHP on kehitetty nimenomaan lomaketiedon käsittelyyn. Tämän tunnin aiheita ovat seuraavat: Kuinka ympäristömuuttujia käytetään Kuinka saadaan tieto lomakekentistä Kuinka työskennellään asiakirjoilla, jotka sisältävät sekä HTML-lomakkeen että PHPkoodin, joka käsittelee sen lähettämisen Kuinka käsitellään monivalintakomponentteja Kuinka tilatietoa tallennetaan piilokenttiin Kuinka käyttäjä ohjataan uudelle sivulle Kuinka rakennetaan HTML-lomakkeita, jotka lataavat tiedostoja palvelimelle ja kuinka kirjoitetaan PHP-koodi, joka käsittelee niitä

4 Lomakkeiden käsittely Globaalit muuttujat ja ympäristömuuttujat Ennenkuin todella rakennat lomakkeen ja käytät sitä tiedon sieppaamiseen, sinun on tehtävä pieni kertaus ja palautettava mieleen, mitä globaali muuttuja pitää sisällään. Globaaleista muuttujista puhuttiin ensin luvussa 6, Funktiot. Globaali muuttuja on muuttuja, joka esitellään skriptin ylätasolla eli funktioiden ulkopuolella. Kaikki funktiot pääsevät käsiksi sisäiseen assosiatiiviseen taulukkoon nimeltä $GLOBALS. Se on hyödyllistä listauksessa 9.1, koska voimme päästä käsiksi jokaiseen globaaliin muuttujaan yhden silmukan avulla. Listaus 9.1 $GLOBALS-taulukon tutkiminen 1: <html> 2: <head> 3: <title>listing 9.1 Looping through the $GLOBALS array</title> 4: </head> 5: <body> 6: <?php 7: $user1 = "Bob"; 8: $user2 = "Harry"; 9: $user3 = "Mary"; 10: foreach ( $GLOBALS as $key=>$value ) 11: { 12: print "\$GLOBALS[\"$key\"] == $value<br>"; 13: } 14:?> 15: </body> 16: </html> Esittelemme kolme muuttujaa ja sitten käymme silmukassa läpi sisäisen $GLOBALS-taulukon tulostaen sekä taulukon avaimet että arvot selaimelle. Tulostuksessa voimme paikantaa määrittelemämme muuttujat, mutta saimme esille kauhean paljon muutakin niiden lisäksi. PHP määrittelee automaattisesti paikalliset muuttujat, jotka kuvaavat palvelimen ja asiakkaan ympäristöjä. Riippuen järjestelmästäsi, palvelimestasi ja kokoonpanostasi noiden muuttujien saatavuus voi vaihdella, mutta ne voivat olla todella hyödyllisiä. Taulukko 9.1 esittelee joitakin yleisiä ympäristömuuttujia. Niihin päästään käsiksi $GLOBALS-taulukon kautta tai sitten suoraan nimen perusteella.

5 9. Lomakkeiden käsittely 153 Taulukko 9.1 Ympäristömuuttujat Muuttuja Sisältää Esimerkki $HTTP_USER_AGENT Asiakkaan nimi ja versio Mozilla/4.6 (X11;I;Linux apmac ppc) $REMOTE_ADDR Asiakkaan IP-osoite $REQUEST_METHOD Onko kyseessä GET- vai POST POST-pyyntö $QUERY_STRING GET-pyyntöjen kohdalla lomakkeen koodattu tieto $REQUEST_URI $HTTP_REFERER Pyynnön koko osoite mukaan lukien kyselymerkkijono Sen sivun osoite, josta pyyntö tehtiin name=matt&address=un known /matt/phpbook/forms/eg9.14.html?n ame=matt com/a_page.html Ympäristömuuttujien lisäksi PHP laittaa muutamia muitakin globaaleja muuttujia ohjelmoijan saataville. Esimerkiksi muuttuja $GLOBALS[ PHP_SELF ] sisältää nykyisen skriptin polun. Omassa ympäristössäni muuttujassa oli arvo /matt/php-book/forms/eg9.1.php. Tuohon muuttujaan voidaan viitata suoraan nimellä $PHP_SELF. Se voi olla hyödyllistä joissakin tämän kirjan esimerkeissä. Laitamme HTML-lomakkeen usein samalle sivulle kuin PHP-koodin, joka analysoi lomakkeen sisällön. Voimme käyttää $PHP_SELF-muuttujassa olevaa merkkijonoa lomakkeen ACTION-argumentin arvona, jolloin meidän ei tarvitse kirjoittaa itse sivun nimeä ja polkua. PHP:n $GLOBALS-taulukko on myös muilla tavoin hyödyllinen. Skripti, joka sieppaa käyttäjän syöttötiedon Toistaiseksi olemme erottaneet HTML:n PHP-koodistamme. Listauksessa 9.2 muodostetaan suppea HTMLlomake. Listaus 9.2 Suppea HTML-lomake 1: <html> 2: <head> 3: <title>listing 9.2 A simple HTML form</title> 4: </head> 5: <body> 6: <form action="eg9.3.php" method="get"> 7: <input type="text" name="user"> 8: <br> 9: <textarea name="address" rows="5" cols="40"> 10: </textarea> 11: <br> 12: <input type="submit" value="hit it!"> 13: </form>

6 Lomakkeiden käsittely 14: </body> 15: </html> Määrittelemme lomakkeen, joka sisältää tekstikentän nimeltä user, tekstialueen nimeltä Address sekä lähetyspainikkeen (submit-napin). Tämän kirjan tarkoituksena ei ole käsitellä HTML:ää yksityiskohtaisemmin. Jos kirjan esimerkit tuntuvat vaikeilta, tutki jotain Samsin HTML-kirjaa tai online-opasta. FORM-elementin ACTION-argumentti viittaa tiedostoon eg9.3.php, joka käsittelee lomakkeen tiedot. Koska olemme laittaneet ACTION-argumenttiin pelkästään tiedoston nimen, tiedoston tulee sijaita samassa kansiossa kuin sivu, jossa lomakekoodi on. Listaus 9.3 luo koodin, joka vastaanottaa käyttäjän syöttämät tiedot. Listaus 9.3 Luetaan listauksen 9.2 lomakkeen tiedot 1: <html> 2: <head> 3: <title>listing 9.3 Reading input from the form in Listing 9.2</title> 4: </head> 5: <body> 6: <?php 7: print "Welcome <b>$user</b><p>\n\n"; 8: print "Your address is:<p>\n\n<b>$address</b>"; 9:?> 10: </body> 11: </html> Tämä on kirjan ensimmäinen skripti, jota ei kutsuta valitsemalla linkki tai kirjoittamalla osoite suoraan selaimen osoitekenttään. Nyt listauksen 9.3 koodi sijoitetaan tiedostoon nimeltä eg9.3.php. Tuota tiedostoa kutsutaan, kun käyttäjä lähettää listauksessa 9.2 määritellyn lomakkeen. Koodi sisältää kaksi muuttujaa nimeltä $user ja $address. Ei liene yllätys, että nuo muuttujat sisältävät lomakkeen tekstikentän user ja tekstialueen address sisällöt. Näin helppoa on lomakkeiden käsittely PHP4-kielellä. Kaikki käyttäjän lähettämä tieto on globaaleissa muuttujissa, joilla on samat nimet kuin lomakkeen kentillä. Monivalintaelementtien käsittely Toistaiseksi lomakkeiden elementit ovat sisältäneet vain yhden yksittäisen arvon. Kuinka sitten teemme, kun yhteen komponenttiin liittyy useampi valittu vaihtoehto? Tällaisia komponentteja ovat SELECT-elementit: käyttäjä voi valita niistä useammankin vaihtoehdon. Jos nimeämme SELECT-elementin paljaalla nimellä, esimerkiksi seuraavasti

7 9. Lomakkeiden käsittely 155 <select name="products" multiple> vastaanottava skripti pääsee käsiksi vain yhteen arvoon, joka vastaa kyseistä nimeä. Voimme muuttaa käyttäytymistä nimeämällä jokaisen elementin nimellä, jonka loppuun laitetaan hakasulkupari. Listaus 9.4 käyttää tuota menettelyä. Listaus 9.4 HTML-lomake, jossa on SELECT-elementti 1: <html> 2: <head> 3: <title>listing 9.4 An HTML form including a SELECT element</title> 4: </head> 5: <body> 6: <form action="eg9.5.php" method="post"> 7: <input type="text" name="user"> 8: <br> 9: <textarea name="address" rows="5" cols="40"> 10: </textarea> 11: <br> 12: <select name="products[]" multiple> 13: <option>sonic Screwdriver 14: <option>tricorder 15: <option>orac AI 16: <option>hal : </select> 18: <br> 19: <input type="submit" value="hit it!"> 20: </form> 21: </body> 22: </html> Skripti, joka käsittelee lomaketietoa, pääsee käsiksi valittuihin vaihtoehtoihin $products-taulukon avulla. Listaus 9.5 esittelee tuota menettelyä.

8 Lomakkeiden käsittely Listaus 9.5 Syötetyn tiedon lukeminen listauksen 9.4 lomakkeelta 1: <html> 2: <head> 3: <title>listing 9.5 Reading input from the form in Listing 9.4</title> 4: </head> 5: <body> 6: <?php 7: print "Welcome <b>$user</b><p>\n\n"; 8: print "Your address is:<p>\n\n<b>$address</b><p>\n\n"; 9: print "Your product choices are:<p>\n\n"; 10: print "<ul>\n\n"; 11: foreach ( $products as $value ) 12: { 13: print "<li>$value<br>\n"; 14: } 15: print "</ul>"; 16:?> 17: </body> 18: </html> SELECT-elementti ei ole ainoa, joka sisältää useampia arvoja. Kun valintaruuduille annetaan sama nimi, käyttäjä voi valita useita vaihtoehtoja yksittäisen kentän avulla. Jos kentän nimessä on hakasulkupari, PHP kääntää käyttäjän antamat tiedot taulukkoon. Voimme korvata listauksen 9.4 SELECT-elementin valintaruuduilla saadaksemme aikaa täsmälleen saman toiminnon: <input type="checkbox" name="products[]" value="sonic Screwdriver"> A Sonic Screwdriver<br> <input type="checkbox" name="products[]" value="tricorder">tricorder<br> <input type="checkbox" name="products[]" value="orac AI">ORAC AI<br> <input type="checkbox" name="products[]" value="hal 2000">HAL 2000<br>

9 9. Lomakkeiden käsittely 157 Kaikkien lomakekenttien käsittely assosiatiivisen taulukon kautta Toistaiseksi käyttämämme tekniikat ovat toimineet aivan hyvin. Ne toimivatkin hyvin niin kauan kuin skripti tietää, minkä nimisiä kenttiä lomakkeissa on. Saatat kuitenkin haluta kirjoittaa koodia, joka mukautuu lomakkeissa tapahtuviin muutoksiin tai palvelee jopa useampaa kuin yhtä lomaketta ilman, että tarvitsisi huolehtia lomakkeiden kenttien nimistä. PHP4:n globaalit muuttujat ratkaisevat tämän ongelman. Riippuen siitä, käytetäänkö lomakkeen lähetystapana POST- vai GET-metodia, voidaan skriptissä viitata lomakkeen kenttiin muuttujan $HTTP_POST_VARS tai $HTTP_GET_VARS kautta. Ne ovat assosiatiivisia taulukoita, jotka sisältävät lähetetyt nimi/arvo-parit. Listaus 9.6 hyödyntää tätä mahdollisuutta listaamalla GET-metodilla lähetetyn lomakkeen tiedot. Listaus 9.6 Lomakkeen tietojen lukeminen $HTTP_GET_VARS-taulukon kautta 1: <html> 2: <head> 3: <title>listing 9.6 Reading input from any form using the $HTTP_GET_VARS A array</title> 4: </head> 5: <body> 6: <?php 7: foreach ( $HTTP_GET_VARS as $key=>$value ) 8: { 9: print "$key == $value<br>\n"; 10: } 11:?> 12: </body> 13: </html> Koodi luettelee kaikkien lähetettyjen kenttien nimet ja arvot. Tietenkään koodi ei vielä ole tarpeeksi älykäs osatakseen käsitellä parametreja, jotka ovat taulukon kautta esillä. Jos käyttäisimme skriptin yhteydessä listauksen 9.4 lomaketta, jossa on SELECT-elementti, saisimme seuraavan tulostuksen: user == Matt Zandstra address == London, England products == Array $products-taulukko on $HTTP_GET_VARS[products]-taulukkoalkiona, mutta emme ole vielä kirjoittaneet koodia ottamaan tätä seikkaa huomioon. Listaus 9.7 testaa kunkin $HTTP_GET_VARS-taulukon alkion tietotyypin ja hoitaa tulostuksen sen mukaan.

10 Lomakkeiden käsittely Listaus 9.7 Syöttötiedon lukeminen miltä tahansa lomakkeelta käyttämällä $HTTP_GET_VARS-taulukkoa 1: <html> 2: <head> 3: <title>listing 9.7 Reading input from any form using the $HTTP_GET_VARS A array</title> 4: </head> 5: <body> 6: <?php 7: foreach ( $HTTP_GET_VARS as $key=>$value ) 8: { 9: if ( gettype( $value ) == "array" ) 10: { 11: print "$key == <br>\n"; 12: foreach ( $value as $two_dim_value ) 13: print "...$two_dim_value<br>"; 14: } 15: else 16: { 17: print "$key == $value<br>\n"; 18: } 19: } 20:?> 21: </body> 22: </html> Käytämme edellä foreach-silmukkaa $HTTP_GET_VARS-taulukon tutkimiseen. Funktion gettype() avulla saamme selville, onko jokin sen arvo taulukko. Jos itse arvo on taulukko, käytämme toista foreach()- silmukkaa sen läpikäymiseen ja tulostamme arvot selaimelle.

11 9. Lomakkeiden käsittely 159 GET- ja POST-lähetysten erotteleminen Toimiakseen joustavasti tietoa vastaanottavan skriptin tulisi saada tietää, onko tieto taulukossa $HTTP_GET_VARS vai $HTTP_POST_VARS. Useimmissa järjestelmissä lähettämistapa saadaan selville ympäristömuuttujasta $REQUEST_METHOD, jonka tulisi sisältää joko teksti post tai teksti get. Voidaksemme olla täysin varmoja siitä, että skriptimme ovat täysin siirrettäviä, voimme hyödyntää sitä tosiseikkaa, että $HTTP_POST_VARS on olemassa vain silloin, kun lähetystapana on post. Listaus 9.8 täydentää jäsentelijäskriptiämme, jotta se toimisi aina oikein. Listaus 9.8 GET- tai POST-lähetyksen tietojen sieppaaminen 1: <html> 2: <head> 3: <title>listing 9.8 Extracting parameters from 4: either a GET or POST request</title> 5: </head> 6: <body> 7: <?php. 8: $PARAMS = ( isset( $HTTP_POST_VARS ) ) 9:? $HTTP_POST_VARS : $HTTP_GET_VARS; 10: foreach ( $PARAMS as $key=>$value ) 11: { 12: if ( gettype( $value ) == "array" ) 13: { 14: print "$key == <br>\n"; 15: foreach ( $value as $two_dim_value ) 16: print "...$two_dim_value<br>"; 17: } 18: else 19: { 20: print "$key == $value<br>\n"; 21: } 22: } 23:?> 24: </body> 25: </html>

12 Lomakkeiden käsittely Käytämme edellä ehto-operaattoria asettamaan muuttuja nimeltä $PARAMS. Sisäisen isset()-funktion avulla tarkistamme, onko $HTTP_POST_VARS-taulukko asetettu. Funktio palauttaa arvon true, jos parametrina oleva muuttuja on määritelty. Jos $HTTP_POST_VARS-taulukko on määritetty, $PARAMS saa sen arvon; muutoin muuttuja saa arvon $HTTP_GET_VARS. Nyt voimme käyttää $PARAMS-taulukkoa koodin loppuosassa tarvitsematta huolehtia siitä, onko lähetyksessä käytetty post- vai get-metodia. HTML- ja PHP-koodin yhdistäminen yksittäisellä sivulla Joissakin olosuhteissa saatat haluta sisällyttää lomakkeen jäsentelykoodia samalle sivulle, jossa HTMLlomake on. Sellainen yhdistelmä voi olla hyödyllinen, jos sinun on esitettävä sama lomake käyttäjälle useammin kuin kerran. Saisit tietenkin enemmän joustavuutta, jos kirjoittaisit koko sivun dynaamisesti, mutta silloin menettäisit yhden PHP:n tehokeinoista. Mitä enemmän standardia koodia voit jättää sivuillesi, sitä helpompaa sivujen kehittäjien on täydentää sivua kyselemättä sinulta lisätietoja. Sinun tulisi kuitenkin välttää PHP-koodipalasten sirottelemista useisiin eri asiakirjoihin, koska silloin niitä on vaikea lukea ja ylläpitää. Aina kun on mahdollista, sinun tulisi luoda funktioita, joita voidaan kutsua HTML-koodista ja käyttää uudelleen muissa projekteissa. Seuraavissa esimerkeissä olemme luomassa kuvitteellista sivustoa, joka opettaa perusmatematiikkaa esikoulun lapsille. Skripti ottaa numeron lomakkeen kentästä ja kertoo käyttäjälle, onko se suurempi tai pienempi kuin ennaltamääritetty kokonaisluku. Listaus 9.9 luo HTML:n. Tätä esimerkkiä varten tarvitsemme vain yksittäisen tekstikentän. Laitamme vielä mukaan hieman PHP-koodia. Listaus 9.9 HTML-lomake, joka kutsuu itseään 1: <html> 2: <head> 3: <title>listing 9.9 An HTML form that calls itself</title> 4: </head> 5: <body> 6: <form action="<?php print $PHP_SELF?>" method="post"> 7: Type your guess here: <input type="text" name="guess"> 8: </form> 9: </body> 10: </html> Lomake osaa aina käyttää kutsussa sivun nimeä, koska FORM-elementin ACTION-argumentissa on arvo $PHP_SELF. Huomaa, että emme ole laittaneet lomakkeelle lähetyspainiketta. Useimmat nykyiset selaimet lähettävät lomakkeen, jossa on yksittäinen tekstikenttä, kun käyttäjä painaa Enter-näppäintä. Ota kuitenkin huomioon, että jotkin vanhemmat selaimet eivät tee niin. Listauksen 9.9 skripti ei tuota mitään tulostetta. Listauksessa 9.10 alamme muodostaa PHP-osaa. Ensiksi on määritettävä numero, jota käyttäjä yrittää arvata. Täysin toimivassa versiossa annamme satunnaislukugeneraattorin luoda luvun puolestamme, mutta nyt pidämme asiat vielä yksinkertaisina. Seuraavaksi on määritettävä, onko lomake lähetetty. Muutoin yritämme käyttää muuttujaa, jota ei vielä ole määritetty. Voimme tarkistaa lähettämisen testaamalla, onko $guess-muuttuja määritetty. Tuo $guessmuuttuja on saatavilla globaalina muuttujana, jos skriptille on lähetetty guess -parametri. Jos se ei ole läsnä,

13 9. Lomakkeiden käsittely 161 voimme luottaa siihen, että käyttäjä on tullut sivulle lähettämättä lomaketta. Jos arvo on olemassa, voimme jatkaa tarkistamalla sen arvon. Listaus 9.10 PHP-skripti, jossa arvataan numeroa 1: <?php 2: $num_to_guess = 42; 3: $message = ""; 4: if (! isset( $guess ) ) 5: { 6: $message = "Welcome to the guessing machine!"; 7: } 8: elseif ( $guess > $num_to_guess ) 9: { 10: $message = "$guess is too big! Try a smaller number"; 11: } 12: elseif ( $guess < $num_to_guess ) 13: { 14: $message = "$guess is too small! Try a larger number"; 15: } 16: else // oltava yhtä suuri 17: { 18: $message = "Well done!"; 19: } 20:?> 21: <html> 22: <head> 23: <title>listing 9.10 A PHP number guessing script</title> 24: </head> 25: <body> 26: <h1> 27: <?php print $message?> 28: </h1> 29: <form action="<?php print $PHP_SELF?>" method="post">

14 Lomakkeiden käsittely 30: Type your guess here: <input type="text" name="guess"> 31: </form> 32: </body> 33: </html> Tämän skriptin ydin sisältää if-lauseen, joka määrittää, mikä merkkijono sijoitetaan $message-muuttujaan. Jos $guess-muuttujaa ei ole määritetty, oletamme, että käyttäjä on tullut sivullemme ensimmäistä kertaa ja sijoitamme tervetulotoivotuksen muuttujaan. Muutoin testaamme $guess-muuttujan arvon suhteessa lukuun, joka on muuttujassa $num_to_guess. Tulos laitetaan $message-muuttujaan. Jos $guess ei ole suurempi tai pienempi kuin $num_to_guess, oletamme, että ne ovat samoja ja sijoitamme onnitteluviestin muuttujaan. Nyt meidän on vain tulostettava $message-muuttujan arvo HTML-sivulle. Koodissa on toistaiseksi vain vähän muita lisäyksiä, mutta saatat nähdä, kuinka helppoa sivujen kehittäjän olisi nyt jatkaa sivun täydentämistä. Hänen ei tarvitsisi häiritä ohjelmointia millään tavoin. Piilokenttien käyttö tilan tallentamiseen Listauksen 9.10 skripti ei voi mitenkään tietää, kuinka monta arvausta käyttäjä on tehnyt. Voimme käyttää piilokenttää jäljittämään tätä tietoa. Piilokenttä käyttäytyy täsmälleen samalla tavalla kuin tekstikenttä, paitsi että käyttäjä ei näe sitä ennenkuin hän katsoo asiakirjan HTML-koodia. Listaus 9.11 lisää numeronarvauspeliin piilokentän ja vielä muutakin PHP-koodia, joka käsittelee piilokenttää. Listaus 9.11 Tilan tallentaminen piilokentän avulla 1: <?php 2: $num_to_guess = 42; 3: $message = ""; 4: $num_tries = ( isset( $num_tries ) )? ++$num_tries : 0; 5: if (! isset( $guess ) ) 6: { 7: $message = "Welcome to the guessing machine!"; 8: } 9: elseif ( $guess > $num_to_guess ) 10: { 11: $message = "$guess is too big! Try a smaller number"; 12: } 13: elseif ( $guess < $num_to_guess ) 14: { 15: $message = "$guess is too small! Try a larger number";

15 9. Lomakkeiden käsittely : } 17: else // oltava yhtä suuri 18: { 19: $message = "Well done!"; 20: } 21: $guess = (int) $guess; 22:?> 23: <html> 24: <head> 25: <title>listing 9.11 Saving state with a hidden field</title> 26: </head> 27: <body> 28: <h1> 29: <?php print $message?> 30: </h1> 31: Guess number: <?php print $num_tries?> 32: <form action="<?php print $PHP_SELF?>" method="post"> 33: Type your guess here: 34: <input type="text" name="guess" value="<?php print $guess?>"> 35: <input type="hidden" name="num_tries" value="<?php print $num_tries?>"> 36: </form> 37: </body> 38: </html>

16 Lomakkeiden käsittely Piilokentälle annetaan nimi num_tries. Sen arvo kirjoitetaan PHP:n avulla. Samalla myös guess -kenttä päivitetään, jotta käyttäjä näkisi viimeisen arvauksensa. Tämä tekniikka on hyödyllinen skripteille, jotka jäsentelevät käyttäjän syöttöä. Jos estämme lomakkeen lähettämisen jostakin syystä, voimme ainakin sallia käyttäjän muokata aiempaa kyselyämme. Kun sinun on tulostettava lausekkeen arvo selaimelle, voit tietenkin käyttää print()- tai echo()-funktioita. PHP:ssä voidaan hyödyntää myös PHP:n lyhyitä PHP-avaustageja. Jos lisäät lyhyeen avaustagiin yhtäsuuruusmerkin (=), sisällä oleva arvo tulostetaan selaimelle. Esimerkki: <? print $test;?> on sama kuin <?=$test?> PHP-pääkoodin sisällä käytetään ehto-operaattoria kasvattamaan $num_tries-muuttujaa. Jos $num_triesmuuttuja on asetettu, lisäämme siihen ykkösen ja käytämme tuota arvoa. Muutoin alustamme muuttujan arvolla 0. HTML-rungossa voimme nyt raportoida käyttäjälle siitä, kuinka monta arvausta hän on tehnyt. Älä luota täysin piilokenttiin. Et tiedä, mitä niiden arvot ovat olleet! Se ei tarkoita sitä, että et voisi käyttää niitä. Ole vain tietoinen siitä, että käyttäjät voivat katsella ja muuttaa lähdekoodia ja huiputtaa sitten skriptiäsi. Käytä piilokenttiä esteettisistä syistä, Niillä ei ole juuri mitään turvallisuusarvoa. Käyttäjän uudelleen ohjaaminen Skriptissämme on vielä yksi suuri heikkous. Lomake tulostetaan uudelleen, arvasipa käyttäjä oikein tai ei. Se, että HTML-koodiin viitataan suoraan, tekee vaikeaksi välttää koko sivun uudelleen tulostumista. Voimme kuitenkin ohjata käyttäjän onnittelusivulle! Kun palvelinskripti keskustelee asiakkaan kanssa, sen tulee ensin lähettää joitakin otsikoita, jotka tarjoavat informaatiota seuraavasta asiakirjasta. PHP hoitaa sen tavallisesti puolestasi automaattisesti, mutta voit myös lähettää omia otsikkorivejäsi käyttämällä PHP:n header()-funktiota. Ennen funktion käyttöä sinun tulee olla varma siitä, että mitään tulostusta ei ole vielä mennyt selaimelle. Kun sisältö lähetetään selaimelle ensimmäistä kertaa, PHP lähettää otsikot, jolloin omien otsikoiden lähettäminen on jo liian myöhäistä. Mikä tahansa asiakirjasta tapahtuva tulostus, pelkkä rivinvaihto tai skriptitagien ulkopuolella oleva välilyönti saa aikaan otsikoiden lähettämisen. Jos aiot käyttää header()-funktiota skriptissäsi, sinun tulee varmistaa, että ennen funktion kutsua ei ole mitään tulostusta selaimelle. Sinun tulee tarkistaa myös kaikki mahdolliset kirjastot, joita käytät skripteissäsi. Listaus 9.12 näyttää tyypilliset otsikot, jotka PHP-koodi lähettää selaimelle.

17 9. Lomakkeiden käsittely 165 Listaus 9.12 PHP-skriptin lähettämät tyypilliset palvelinotsikot 1: HEAD /matt/php-book/forms/eg9.1.php HTTP/1.0 2: HTTP/ OK 3: Date: Sun, 09 Jan :37:45 GMT 4: Server: Apache/1.3.9 (UNIX) PHP/4.0 5: Connection: close 6: Content-Type: text/html Voit nähdä otsikot, jotka lähetetään vastauksena pyyntöön käyttämällä telnetasiakasta. Kytkeydy palvelimelle porttiin 80 ja kirjoita sitten komento HEAD /path/to/file.html HTTP/1.0 ja paina Enteriä kaksi kertaa. Otsikoiden pitäisi nyt tulostua. Lähettämällä Location -otsikon PHP:n oletusotsikon sijaan voit saada selaimen ohjautumaan uudelle sivulle: header( "Location: ); Olettamalla, että olemme luoneet sopivan onnittelusivun nimeltä congrats.html, voimme muuttaa skriptiämme ohjaamaan käyttäjä tuolle uudelle sivulle, jos hän on arvannut numeron oikein. Koodi on listauksessa Listaus 9.13 Header()-funktion käyttäminen omien otsikoiden lähettämiseen 1: <?php 2: $num_to_guess = 42; 3: $message = ""; 4: $num_tries = ( isset( $num_tries ) )? ++$num_tries : 0; 5: if (! isset( $guess ) ) 6: { 7: $message = "Welcome to the guessing machine!"; 8: } 9: elseif ( $guess > $num_to_guess ) 10: { 11: $message = "$num is too big! Try a smaller number"; 12: }

18 Lomakkeiden käsittely 13: elseif ( $guess < $num_to_guess ) 14: { 15: $message = "$num is too small! Try a larger number"; 16: } 17: else // oltava yhtä suuri 18: { 19: header( "Location: congrats.html" ); 20: exit; 21: } 22: $guess = (int) $guess; 23:?> 24: <html> 25: <head> 26: <title>listing 9.13 Using header() to send raw headers</title> 27: </head> 28: <body> 29: <h1> 30: <?php print $message?> 31: </h1> 32: Guess number: <?php print $num_tries?> 33: <form action="<?php print $PHP_SELF?>" method="post"> 34: Type your guess here: 35: <input type="text" name="guess" value="<?php print $guess?>"> 36: <input type="hidden" name="num_tries" 37: value="<?php print $num_tries?>"> 38: </form> 39: </body> 40: </html> Koodin if-rakenteen else-osa saa nyt aikaan sen, että selain lataa tiedoston congrats.html. Kaikki tulostus nykyiseltä sivulta keskeytetään exit-lauseella, joka lopettaa jäsentelyn ja tulostuksen, olipa kyseessä HTML- tai PHP-koodia.

19 9. Lomakkeiden käsittely 167 Tiedoston lataamiseen tarvittava lomake ja skripti Toistaiseksi olemme katsoneet vain yksinkertaisen lomakkeen syöttämistä. Netscape 2 ja Internet Explorer 4 ja niitä uudemmat selaimet tukevat tiedostojen lataamista palvelimelle. Niin tekee myös PHP4. Tässä jaksossa tutkimme niitä PHP:n piirteitä, jotka liittyvät tiedostojen siirtämiseen palvelimelle. Ensin meidän on luotava HTML-sivu. HTML-lomakkeiden, joissa on tiedostojen lataamiseen liittyviä kenttiä, täytyy sisältää ENCTYPE-argumentti: ENCTYPE="multipart/form-data" PHP vaatii myös sen, että piilokenttä on mukana koodissa ennen tiedoston lataamiseen tarkoitettua kenttää. Sitä voidaan kutsua nimellä MAX_FILE_SIZE ja siinä tulisi olla arvo, joka edustaa tiedoston maksimikokoa tavuina. Koko ei voi ylittää sitä maksimikokoa, joka on annettu php.ini-tiedoston kohdassa upload_max_file_size. Oletusarvona on 2 megatavua. Kun tiedoston maksimikoko on annettu, voit lisätä lataamiskentän sivulle. Se on pelkkä tekstikenttä, jonka tyyppinä on file. Kentälle voi antaa minkä tahansa nimen. Listaus 9.14 sisältää kaiken edellä mainitun peruskoodin. Listaus 9.14 Suppea lomake tiedoston lataamiseen 1: <html> 2: <head> 3: <title>listing 9.14 A simple file upload form</title> 4: </head> 5: <body> 6: <form enctype="multipart/form-data" action="<?print $PHP_SELF?>" method=" POST"> 7: <input type="hidden" name="max_file_size" value="51200"> 8: <input type="file" name="fupload"><br> 9: <input type="submit" value="upload!"> 10: </form> 11: </body> 12: </html> Huomaa, että nytkin lomake kutsuu sivua, jolla lomake on. Tämä johtuu siitä, että aiomme lisätä hieman PHP-koodia, joka käsittelee ladattavaa tiedostoa. Rajoitamme tiedoston koon 50 kilotavuun ja annamme lataamiskentälle nimen fupload. Kuten saatat odottaa, tuosta nimestä tulee pian tärkeä. Kun tiedosto ladataan onnistuneesti, sille annetaan uniikki nimi ja se tallennetaan tilapäiskansioon (UNIXjärjestelmissä kansio on /tmp). Tiedoston koko polku on saatavilla globaalissa muuttujassa, jolla on sama nimi kuin lomakekentällä (nyt nimenä on siis $fupload). PHP tallentaa lisäinformaatiota tiedostosta useaan globaaliin muuttujaan. Niissä on muuttujan nimi (joka johdetaan lomakekentän nimestä), jota seuraa alaviiva ja sitten tunnisteet name, size ja type. Taulukko 9.2 näyttää näiden muuttujien merkityksen.

20 Lomakkeiden käsittely Taulukko 9.2 Globaalit muuttujat tiedoston lataamisessa Muuttujan nimi Sisältää Esimerkki $fupload Polku tilapäismuuttujaan /tmp/php5pq3fu $fupload_name Ladattavan tiedoston nimi test.gif $fupload_size Ladattavan tiedoston koko tavuina 6835 $fupload_type Ladattavan tiedoston MIME-tyyppi image/gif PHP4 sisältää uuden sisäisen muuttujan, jossa on tietoa ladattavasta tiedostosta taulukkomuodossa. Jos lomakkeen kautta ladataan yksi tai useampi tiedosto, $HTTP_POST_FILES-taulukon indeksoinnissa käytetään aina kunkin ladattavan tiedoston nimeä. Näitä avaimia vastaava arvo on aina oma assosiatiivinen taulukkonsa. Nuo kentät kuvataan taulukossa 9.3. Taulukko9.3 Tiedostojen lataamiseen liittyvät globaalit muuttujat Elementti Sisältää Esimerkki $HTTP_POST_FILES[fupload] Ladattavan tiedoston nimi test.gif [name] $HTTP_POST_FILES[fupload] Ladattavan tiedoston koko 6835 [size] $HTTP_POST_FILES[fupload] [type] Ladattavan tiedoston MIME-tyyppi image/gif Tämän tiedon avulla voimme nyt kirjoittaa pikavauhtia skriptin, joka esittää tietoa ladattavista tiedostoista (katso listausta 9.15). Jos ladattava tiedosto on GIF-muodossa, skripti yrittää jopa esittää sen. Listaus 9.15 Tiedoston lataava skripti 1: <html> 2: <head> 3: <title>listing 9.15 A file upload script</title> 4: </head> 5: <?php 6: $file_dir = "/home/matt/htdocs/uploads"; 7: $file_url = " 8: if ( isset( $fupload ) ) 9: { 10: print "path: $fupload<br>\n"; 11: print "name: $fupload_name<br>\n"; 12: print "size: $fupload_size bytes<br>\n"; 13: print "type: $fupload_type<p>\n\n"; 14: if ( $fupload_type == "image/gif" )

21 9. Lomakkeiden käsittely : { 16: copy ( $fupload, "$file_dir/$fupload_name") or die ("Couldn't copy"); 17: 18: print "<img src=\"$file_url/$fupload_name\"><p>\n\n"; 19: } 20: } 21:?> 22: <body> 23: <form enctype="multipart/form-data" action="<?php print $PHP_SELF?>" method="post"> 24: <input type="hidden" name="max_file_size" value="51200"> 25: <input type="file" name="fupload"><br> 26: <input type="submit" value="send file!"> 27: </form> 28: </body> 29: </html> Listauksessa 9.15 tarkistamme ensin, onko $fupload-muuttuja olemassa. Jos se on olemassa, oletamme, että tiedostokin on olemassa (ainakin tämän esimerkin tarpeita varten). Älä koskaan oleta, että skripteillesi lähetetty tieto on peräisin tietystä lähteestä, tai että pyyntö sisältää sellaisen tietotyypin ja arvoalueen, jotka skriptimme hyväksyy. Listauksessa 9.15 oletimme, että tietty muuttuja johdetaan tiedostokentän mukaan. Itse asiassa mikään ei voi estää pahansuopaista käyttäjää luomasta omaa lomakettaan, joka lähettää tietoa skriptillemme. Hän voisi helposti lähettää skriptille parametrin, jolla on sama nimi kuin lataamiskentällä, mutta sisältönä pelkkä teksti. Tämä voi kuulostaa vainoharhaiselta ja niin sen tuleekin kuulostaa. Palvelinpuolen ohjelmoinnissa on parasta olla luottamatta käyttäjiin: tieto voi tulla skriptillemme mistä tahansa ulkoisesta lähteestä, vaikka lomake näyttäisikin olevan joissakin tapauksissa sama kuin luomamme lomake. Jos tiedosto on ladattu, on ladatun tiedoston polku palvelimella muuttujassa $fupload ja voimme tulostaa sen selaimelle. Voimme tulostaa samalla tiedoston nimen, joka on muuttujassa $fupload_name, tiedoston koon muuttujasta $fupload_size sekä tiedoston MIME-tyypin, joka on muuttujassa $fupload_type.

22 Lomakkeiden käsittely Sitten testaamme $fupload_type-muuttujassa olevan arvon. Jos se on image/gif, oletamme, että kyseessä on GIF-kuva. Itse asiassa olisi hyvä testata se ottamatta huomioon isoja ja pieniä kirjaimia. Asiaa selvitetään luvussa 17, Merkkijonojen käsittely. Olettamuksemme ei nyt ota myöskään huomioon sitä mahdollisuutta, että myös jokin muu tiedosto olisi nimetty.gif-tunnusta käyttäen. Muista kuitenkin sellainen mahdollisuus todellisissa palveluskripteissäsi. Jos kyseessä on GIF-kuva, käytämme copy()-funktiota kopioimaan ladattavan tiedoston oletuspaikastaan kansioon, joka on palvelimella. Nyt copy()-funktiomme ottaa kaksi merkkijonoa: alkuperäisen ja uuden polun tiedostoon. Se palauttaa arvon true, jos kopiointi onnistuu. Alkuperäinen polku tallennetaan $fuploadmuuttujaan. Olemme luoneet muuttujan $file_dir, joka sisältää täyden polun kansioon, jota haluamme käyttää kuvien tallentamiseen. Tuo arvo yhdessä $fupload-muuttujaan tallennetun tiedostonimen kanssa muodostaa toisen argumentin, joka viedään copy()-funktiolle. Funktion kutsun tuloksena ladattu tiedosto kopioidaan haluamaamme kansioon alkuperäisellä nimellään. Huomaa, että UNIX-järjestelmissä palvelinskriptit ajetaan erikoiskäyttäjän tunnuksella, usein kyseessä on nobody. Ennen kuin kopioit tiedoston kansioon, sinun tulee varmistaa, että prosessisi sallitaan tekevän niin. Käytämme nyt oroperaattoria ja die()-funktiota keskeyttämään skripti, jos kopiointi epäonnistuu. Käsittelemme tätä tekniikkaa yksityiskohtaisemmin luvussa 10, Tiedostojen käsittely. Kun olemme kopioineet tiedoston, meidän ei tarvitse tuhota alkuperäistä tiedostoa. PHP hoitaa asian puolestamme. Kun olemme luoneet $file_dir-muuttujan tallentamaan kohdekansiomme tiedostopolun, luomme myös muuttujan nimeltä $file_url tallentamaan saman kansion URL:n. Esitämme skriptin välissä kuvan HTML-koodilla. Yhteenveto Jos olet pysynyt kärryillä, olet saanut kokea, että yhä jännittävämpiä asioita on tulossa. Nyt sinulla on työkaluja, joilla voit luoda todella hienoja ja vuorovaikutteisia ympäristöjä. Muutamia seikkoja kuitenkin vielä puuttuu. Nyt, kun osaat siepata tietoja käyttäjältä, olisi mukavaa tehdä jotain noilla tiedoilla. Kirjoittaa ne esimerkiksi tiedostoon. Se onkin seuraavan tunnin aiheena. Tällä tunnilla opit työskentelemään assosiatiivisella $GLOBALS-taulukolla ja käsittelemään ympäristömuuttujia, lomaketietoja sekä lataamaan tiedostoja globaalien muuttujien avulla. Opit myös lähettämään omia otsikkotietojasi asiakkaalle, jotta hänet ohjattaisiin uuteen osoitteeseen. Opit myös sieppaamaan tietoa lomakelähetyksistä ja viemään tietoa skriptikutsulta toiselle piilokenttien avulla. K&V K Voinko luoda taulukoita muidenkin elementtien kuin luetteloiden ja valintaruutujen arvoille? V Kyllä, itse asiassa jokainen elementin nimi, joka päättyy hakasulkupariin, viittaa taulukkoon. Voit hyödyntää tuota seikkaa esimerkiksi ryhmittämällä useista kentistä lähetetyt, erityyppiset arvot taulukkoon. K Luvussa käytetty header()-funktio tuntuu tehokkaalta. Tutkimmeko HTTP-otsikoita vielä tarkemmin jossakin tulevassa luvussa? V Käsittelemme Hypertext Transfer Protocol (HTTP) -ympäristöä tarkemmin luvussa 13, Pintaa syvemmältä.

23 9. Lomakkeiden käsittely 171 K Lomakkeen elementtien automaattinen muuntaminen muuttujiksi tuntuu hieman riskialttiilta toimenpiteeltä. Voinko estää sen tapahtumisen? V Kyllä, voit varmistaa, että lähetetyn lomakkeen elementtien nimiä ei muunneta globaaleiksi muuttujiksi asettamalla php.ini-tiedoston gpc_globals-asetusarvoksi off. Työpaja Työpaja tarjoaa pikakysymyksiä, joiden avulla voit kerrata läpikäytyä materiaalia. Yritä ymmärtää vastaukset ennen kuin jatkat seuraavaan lukuun. Vastaukset annetaan liitteessä A. Kysymyksiä 1. Mitä ympäristömuuttujaa voisit käyttää määrittääksesi käyttäjän IP-osoitteen? 2. Mitä ympäristömuuttujaa voisit käyttää saadaksesi selville selaimen, joka kutsui skriptiäsi? 3. Kuinka sinun tulisi nimetä lomakekenttäsi päästäksesi käsiksi lähetettyihin tietoihin $form_array-nimisen taulukon avulla? 4. Mikä sisäinen taulukko sisältää kaikki GET-tavalla lähetetyn lomakkeen tiedot? 5. Mikä sisäinen taulukko sisältää kaikki POST-tavalla lähetetyn lomakkeen tiedot? 6. Mitä funktiota käyttäisit ohjataksesi selaimen uudelle sivulle? Minkä merkkijonon veisit sille? 7. Kuinka rajoittaisit sen tiedoston koon, jonka käyttäjä voisi lähettää lomakkeen kautta? 8. Kuinka voisit asettaa kokorajoituksen kaikilta lomakkeilta ja kaikista skripteistä ladattaville tiedostoille? Toiminta 1. Luo laskinskripti, joka sallii käyttäjän lähettää kaksi numeroa ja valita haluamansa laskutoimituksen (yhteenlasku, vähennyslasku, jakolasku, kertolasku). 2. Käytä piilokenttiä skriptissä, jonka luot kohdassa 1 tallentamaan ja esittämään käyttäjän tekemien laskutoimitusten määrä (eli lomakkeen lähettämisten määrä).

24 Lomakkeiden käsittely

Lomake kannattaa asemoida taulukkoon: table. Silloin selitteet ja kentät saadaan sarakkeisiin. Kenttien ulkoasu voidaan määritellä tyyleillä.

Lomake kannattaa asemoida taulukkoon: table. Silloin selitteet ja kentät saadaan sarakkeisiin. Kenttien ulkoasu voidaan määritellä tyyleillä. Lomakkeet Lomake kannattaa asemoida taulukkoon: table. Silloin selitteet ja kentät saadaan sarakkeisiin. Kenttien ulkoasu voidaan määritellä tyyleillä. Lomakkeen tyylit kannattaa määritellä omaan, eriliseen,

Lisätiedot

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

ICT1TN004. Lomakkeet. Heikki Hietala

ICT1TN004. Lomakkeet. Heikki Hietala Lomakkeet Heikki Hietala Lomakkeet Lomakkeita käytetään keräämään tietoa käyttäjältä ja siirtämään se palvelimelle Lomakkeen luominen ei yksin riitä, vaan pitää luoda myös lomakkeenkäsittelijä Lomakkeen

Lisätiedot

OPPITUNTI 11 DBM-funktioiden käyttö

OPPITUNTI 11 DBM-funktioiden käyttö 11. DBM-funktioiden käyttö 193 OPPITUNTI 11 DBM-funktioiden käyttö Jos sinulla ei ole pääsyä SQL-tietokantaan, esimerkiksi MySQL- tai Oracle-tietokantaan, sinulla on varmaankin mahdollisuus käyttää DBM-tyylistä

Lisätiedot

OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla

OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla 20. Tilan tallentaminen istuntofunktiolla 353 OPPITUNTI 20 Tilan tallentaminen istuntofunktioilla Edellisellä tunnilla tutkimme tilan tallentamista evästeiden ja kyselymerkkijonojen avulla. PHP4 on kuitenkin

Lisätiedot

OPPITUNTI 3 Ensimmäinen skripti

OPPITUNTI 3 Ensimmäinen skripti 3. Ensimmäinen skripti 35 OPPITUNTI 3 Ensimmäinen skripti Kun olet asentanut PHP:n ja asettanut sen kokoonpanon, on aika laittaa ohjelmisto testaukseen. Tällä tunnilla luot ensimmäisen skriptisi ja tutkit

Lisätiedot

Palvelinpuolen ohjelmointi

Palvelinpuolen ohjelmointi Palvelinpuolen ohjelmointi Staattiset ja dynaamiset web-sivut Staattiset web-sivut ovat valmiissa muodossaan palvelimella (tai paikallisesti omalla koneella). Javascript mahdollistaa paikalliset dynaamiset

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

SSH Secure Shell & SSH File Transfer

SSH Secure Shell & SSH File Transfer SSH Secure Shell & SSH File Transfer TIETOHALLINTO Janne Suvanto 1.9 2002 Sisällysluettelo Sisällysluettelo... 1 Yleistä... 2 SSH Secure Shell ohjelman asetukset... 3 POP3 tunnelin asetukset... 6 Yhteyden

Lisätiedot

OPPITUNTI 5 Ohjelman kulku

OPPITUNTI 5 Ohjelman kulku 5. Ohjelman kulku 67 OPPITUNTI 5 Ohjelman kulku Viime tunnilla luomamme skriptit olivat suoraviivaisia. Ohjelmalauseet suoritettiin aina samassa järjestyksessä, joten ohjelmissamme ei ollut lainkaan joustavuutta.

Lisätiedot

6. Funktiot 85. Kuinka funktioita määritellään ja kutsutaan. Kuinka funktioille viedään arvoja ja niistä palautetaan arvoja

6. Funktiot 85. Kuinka funktioita määritellään ja kutsutaan. Kuinka funktioille viedään arvoja ja niistä palautetaan arvoja 6. Funktiot 85 OPPITUNTI 6 Funktiot Funktiot ovat hyvin laaditun skriptin perusta. Ne tekevät koodista helppolukuista ja uudelleen käytettävää. Laajoja projekteja on mahdotonta hallita ilman funktioiden

Lisätiedot

Digitaalisen median tekniikat xhtml - jatkuu

Digitaalisen median tekniikat xhtml - jatkuu Digitaalisen median tekniikat xhtml - jatkuu 26.3.2004 Harri Laine 1 Lomakkeet mahdollistavat tiedon välityksen asiakkaalta (selaimesta) tiedon vastaanottajalle Vastaanottaja voi olla sähköpostiosoite

Lisätiedot

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1 Digitaalisen median tekniikat xhtml - jatkuu 30.4.2004 Harri Laine 1 XHTML lomakkeet Lomakkeet mahdollistavat tiedon välityksen asiakkaalta (selaimesta) tiedon vastaanottajalle Vastaanottaja voi olla sähköpostiosoite

Lisätiedot

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus 582203 Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus Sisältö Mikä on web-sovellus? Selaimen rooli web-sovelluksessa Palvelimen rooli web-sovelluksessa Aineistopyynnöt Tiedon välittäminen

Lisätiedot

8. Oliot 123. Kuinka luokkia luodaan ja olioita saadaan aikaan. Kuinka luodaan ja käsitellään ominaisuuksia ja metodeja

8. Oliot 123. Kuinka luokkia luodaan ja olioita saadaan aikaan. Kuinka luodaan ja käsitellään ominaisuuksia ja metodeja 8. Oliot 123 OPPITUNTI 8 Oliot Oliopohjainen ohjelmointi on vaarallista. Se muuttaa koodaamista koskevia ajatuksiasi ja kun uudet käsitteet ovat saaneet jalansijaa, ne eivät katoa mitenkään. PHP on Perlin

Lisätiedot

OPPITUNTI15 Päivämäärien käsittely

OPPITUNTI15 Päivämäärien käsittely 15. Päivämäärien käsittely 269 OPPITUNTI15 Päivämäärien käsittely Päivämäärät kuuluvat niin usein jokapäiväiseen elämään, että niiden käsittely on rutiininomaista. Kalenterin käsittely ei aina ole kuitenkaan

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

Lomakkeet HTML5. Elina Ulpovaara. Testaus: IE9 Firefox7 Opera11 Chrome

Lomakkeet HTML5. Elina Ulpovaara. Testaus: IE9 Firefox7 Opera11 Chrome Lomakkeet HTML5 Elina Ulpovaara Testaus: IE9 Firefox7 Opera11 Chrome SELAIN Käyttäjä täyttää lomakkeen ja painaa lähetys-painiketta. Selain lähettää käyttäjän antamat tiedot palvelimelle lomakkeessa määrättyyn

Lisätiedot

Digitaalisen median tekniikat, k2004 HY/TKTL, palvelinohjelmointi_1 21/04/2004. Harri Laine 1. Palvelinohjelmointi. Staattinen www-sivu

Digitaalisen median tekniikat, k2004 HY/TKTL, palvelinohjelmointi_1 21/04/2004. Harri Laine 1. Palvelinohjelmointi. Staattinen www-sivu 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

OPPITUNTI 21 Palvelinympäristö

OPPITUNTI 21 Palvelinympäristö 21. Palvelinympäristö 365 OPPITUNTI 21 Palvelinympäristö Edellisellä tunnilla tutkimme tekniikoita, joiden avulla voidaan kommunikoida etäkoneiden kanssa ja saada tietoa käyttäjiltä. Tällä tunnilla käsittelemme

Lisätiedot

Digitaalisen median tekniikat. Palvelinohjelmointi Harri Laine 1

Digitaalisen median tekniikat. Palvelinohjelmointi Harri Laine 1 Digitaalisen median tekniikat Palvelinohjelmointi 21.4.2004 Harri Laine 1 Palvelinohjelmointi Staattinen www-sivu Palvelimelle tallennettu valmis sivu Sama URL antaa aina saman sisällön Teknisesti sivu

Lisätiedot

Digitaalisen median tekniikat. Palvelinohjelmointi

Digitaalisen median tekniikat. Palvelinohjelmointi Digitaalisen median tekniikat Palvelinohjelmointi 21.4.2004 Harri Laine 1 Palvelinohjelmointi Staattinen www-sivu Palvelimelle tallennettu valmis sivu Sama URL antaa aina saman sisällön Teknisesti sivu

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

OSA I Aloitetaan. Oppitunti. 1. PHP: Kotisivusta portaaliin 2. PHP:n asentaminen 3. Ensimmäinen skriptisi. 17 Johdanto

OSA I Aloitetaan. Oppitunti. 1. PHP: Kotisivusta portaaliin 2. PHP:n asentaminen 3. Ensimmäinen skriptisi. 17 Johdanto 17 Johdanto OSA I Aloitetaan Oppitunti 1. PHP: Kotisivusta portaaliin 2. PHP:n asentaminen 3. Ensimmäinen skriptisi 18 1. Kotisivusta Portaaliin 19 OPPITUNTI 1 PHP: Kotisivusta portaaliin Tervetuloa PHP-maailmaan!

Lisätiedot

TIETOJENKÄSITTELY/PIKATAIVAL2 Tehtävä G

TIETOJENKÄSITTELY/PIKATAIVAL2 Tehtävä G TIETOJENKÄSITTELY/PIKATAIVAL2 Tehtävä G 1 Tehtävänäsi on määritellä tietokantaan KisatSVNL.mdb lomake Kilpailut ohessa olevan mallin mukaan. Lomake on tarkoitettu kilpailutietojen lisäykseen, selailuun

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

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

7. Taulukot 105. Kuinka taulukoiden tietoa käsitellään ja lajitellaan

7. Taulukot 105. Kuinka taulukoiden tietoa käsitellään ja lajitellaan 7. Taulukot 105 OPPITUNTI 7 Taulukot Taulukot ja niiden käsittelyyn liittyvät toiminnot laajentavat suuresti PHP4-skriptien käyttöaluetta ja joustavuutta. Kun tunnet taulukot, voit tallentaa niihin monimutkaisia

Lisätiedot

OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla

OPPITUNTI 19 Tilan tallentaminen evästeiden ja kyselymerkkijonojen avulla 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

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

EKP:N HANKINTAMENETTELYJEN VERKKOPALVELU OSALLISTUMINEN HANKINTAMENETTELYIHIN

EKP:N HANKINTAMENETTELYJEN VERKKOPALVELU OSALLISTUMINEN HANKINTAMENETTELYIHIN Taloushallinnon pääosasto ECB-UNRESTRICTED 8.11.2016 EKP:N HANKINTAMENETTELYJEN VERKKOPALVELU OSALLISTUMINEN HANKINTAMENETTELYIHIN Seuraavassa esitetään ohjeet pyydettyjen tietojen toimittamiseen EKP:n

Lisätiedot

OSA II Kieli. Oppitunti. 4. Rakennuslohkot 5. Ohjelman kulku 6. Funktiot 7. Taulukot 8. Oliot

OSA II Kieli. Oppitunti. 4. Rakennuslohkot 5. Ohjelman kulku 6. Funktiot 7. Taulukot 8. Oliot 43 OSA II Kieli Oppitunti 4. Rakennuslohkot 5. Ohjelman kulku 6. Funktiot 7. Taulukot 8. Oliot 4. Rakennuslohkot 45 OPPITUNTI 4 Rakennuslohkot Tällä tunnilla joudut paneutumaan itse ohjelmointikieleen.

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 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

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

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

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

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

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.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

Opas administraattori-tason käyttäjille. MANAGERIX -ohjelman esittely... 2 Kirjautuminen... 2

Opas administraattori-tason käyttäjille. MANAGERIX -ohjelman esittely... 2 Kirjautuminen... 2 MANAGERIX Opas administraattori-tason käyttäjille SISÄLLYS MANAGERIX -ohjelman esittely... 2 Kirjautuminen... 2 Käyttöliittymä... 2 1 ORGANISAATIO Organisaation tietojen tarkastelu ja muokkaaminen4 Yhteenveto

Lisätiedot

Contact Form 7 -lomakkeen yhdistäminen Timeline Manageriin

Contact Form 7 -lomakkeen yhdistäminen Timeline Manageriin Contact Form 7 -lomakkeen yhdistäminen Timeline Manageriin Tarvittavat Wordpress-lisäosat 1. Contact Form 7 https://wordpress.org/plugins/contact-form-7/ Mahdollistaa Contact Form 7 -lomakkeiden luomisen

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

Digitaalisen median tekniikat xhtml - jatkuu

Digitaalisen median tekniikat xhtml - jatkuu Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1 Kehykset IFRAME - elementti (inline frame) mahdollistaa kehysten upottamisen myös muihin kuin frameset.dtd:n mukaisiin dokumentteihin IFRAME toimii

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

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

Järjestelmäarkkitehtuuri (TK081702)

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri (TK081702) yleistyvät verkkopalveluissa Youtube Google... Avaavat pääsyn verkkopalvelun sisältöön. Rajapintojen tarjoamia tietolähteitä yhdistelemällä luodaan uusia palveluja,

Lisätiedot

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta. Tehtävä 63. Kirjoita oma versio funktiosta strcmp(),joka saa parametrinaan kaksi merkkiosoitinta. Tee ohjelma, jossa luetaan kaksi merkkijonoa, joita sitten verrataan ko. funktiolla. Tehtävä 64. Kirjoita

Lisätiedot

EK:n palkkatiedustelun asiointipalvelu ja SFTPtiedonsiirto. Ohje

EK:n palkkatiedustelun asiointipalvelu ja SFTPtiedonsiirto. Ohje EK:n palkkatiedustelun asiointipalvelu ja SFTPtiedonsiirto Ohje Tiedonanto- ja siirtopalvelut Palkkatiedustelun tietoja voi toimittaa eri tekniikoilla 1. Syöttämällä käsin asiointipalvelun lomakenäkymässä

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

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

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

TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE

TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE TALLENNETAAN MUISTITIKULLE JA MUISTIKORTILLE HERVANNAN KIRJASTON TIETOTORI Insinöörinkatu 38 33720 Tampere 040 800 7805 tietotori.hervanta@tampere.fi TALLENNETAAN MUISTIKULLE JA MUISTIKORTILLE 1 Muistitikun

Lisätiedot

Flash ActionScript osa 4

Flash ActionScript osa 4 Flash ActionScript osa 4 Tekstikentät Flash:ssa tekstikenttä voi olla tyypiltään joko TLF Text tai Classic Text. TLF Text on uusi Flash CS5 tullut tyyppi. Sen animointi ja muotoilu ominaisuudet ovat monipuolisemmat

Lisätiedot

Luento 3. Jouni Ikonen - Jouni.Ikonen lut.fi

Luento 3. Jouni Ikonen - Jouni.Ikonen lut.fi CT30A3200 - WWW-sovellukset Luento 3 Jouni Ikonen - Jouni.Ikonen lut.fi Kalvot Arto Hämäläisen kalvojen pohjalta 1 Jouni Ikonen HTML-lomakkeet HTML-lomakkeiden avulla voidaan WWW-sovelluksessa hakea käyttäjän

Lisätiedot

OPPITUNTI 24 Esimerkki (Osa 2)

OPPITUNTI 24 Esimerkki (Osa 2) 24. Esimerkki (Osa 2) 429 OPPITUNTI 24 Esimerkki (Osa 2) Luvussa 23, "Esimerkki (Osa 1)" rakensimme ympäristön, joka sallii käyttäjien kirjoittautua palveluun ja lisätä kerho- ja tapahtumatiedot järjestelmään.

Lisätiedot

Verkkojulkaiseminen Minna Väisänen. HTML5-tehtävä

Verkkojulkaiseminen Minna Väisänen. HTML5-tehtävä Verkkojulkaiseminen Minna Väisänen HTML5-tehtävä Kirjoita Dreamweaverissa oheisen nettisivun koodi. Lisää xx-kohtiin omat tietosi. Kuvan nimi on joki.jpg. Ensin tehdään sivusto ja sitten yksittäinen sivu.

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

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

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

Johdatus Ohjelmointiin

Johdatus Ohjelmointiin Johdatus Ohjelmointiin Syksy 2006 Viikko 2 13.9. - 14.9. Tällä viikolla käsiteltävät asiat Peruskäsitteitä Kiintoarvot Tiedon tulostus Yksinkertaiset laskutoimitukset Muuttujat Tiedon syöttäminen Hyvin

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

Harjoitus 3 (viikko 39)

Harjoitus 3 (viikko 39) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien

Lisätiedot

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa

WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa WWW ja tietokannat WWW-sivut HTML-kielellä esitettyä hypertekstiaineistoa tekstiä, kuvia, hyperlinkkejä Staattiset sivut kirjoitettu kerran, muuttaminen käsin ongelmana pysyminen ajantasalla Ylläpito hankalaa,

Lisätiedot

Tukipyyntö-toiminnon ohje

Tukipyyntö-toiminnon ohje Tukipyyntö-toiminnon ohje Diagnoosilaitteen teknisen tukipyyntötoiminnon avulla avataan teknistä tukea koskeva asiakirja, joka sisältää tietoja ongelmatilanteen ratkaisemiseksi. Sen kautta saadaan käyttöön

Lisätiedot

Hakemistojen sisällöt säilötään linkitetyille listalle.

Hakemistojen sisällöt säilötään linkitetyille listalle. Harjoitustyö 1 Harjoitustyö Tehtävä: ohjelmoi Java-kielellä komentoikkunaa (komentotulkkia, komentoriviä) simuloiva olioperustainen ohjelma. Hakemistojen sisällöt säilötään linkitetyille listalle. Työ

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

Ryhmäharjoitus I: Google Drive. TIEY4 Tietotekniikkataidot, kevät 2017 Tehdään ryhmäharjoitustunnilla 13.3.

Ryhmäharjoitus I: Google Drive. TIEY4 Tietotekniikkataidot, kevät 2017 Tehdään ryhmäharjoitustunnilla 13.3. Ryhmäharjoitus I: Google Drive TIEY4 Tietotekniikkataidot, kevät 2017 Tehdään ryhmäharjoitustunnilla 13.3. Ryhmäharjoitus Johdanto (10 min) Tehtävä (60 min) Palaute (10 min) Miksi Virtuaalinen globaali

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

Alkuun HTML5 peliohjelmoinnissa

Alkuun HTML5 peliohjelmoinnissa Paavo Räisänen Alkuun HTML5 peliohjelmoinnissa www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida ja levittää ei kaupallisissa tarkoituksissa. Sisällysluettelo 1: Alkusanat 2: Alkuun 3: Pelinäkymä

Lisätiedot

Google Forms / Anna Haapalainen. Google Forms Googlen lomake-työkalu

Google Forms / Anna Haapalainen. Google Forms Googlen lomake-työkalu Google Forms Googlen lomake-työkalu Google Forms / Anna Haapalainen Googlen lomaketyökalulla on helppoa tehdä sähköisiä kyselyitä, tehtäviä tai kokeita. Voidaksesi luoda Googlen lomakkeita, sinulla tulee

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

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

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 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

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

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

Muistitikun liittäminen tietokoneeseen

Muistitikun liittäminen tietokoneeseen Muistitikun käyttäminen 1 Muistitikun liittäminen tietokoneeseen Muistitikku liitetään tietokoneen USB-porttiin. Koneessa voi olla useita USB-portteja ja tikun voi liittää mihin tahansa niistä. USB-portti

Lisätiedot

Paavo Räisänen. WampServer palvelimen asennus ja käyttö Eclipsen kanssa, sekä ensimmäinen FTP yhteys. www.ohjelmoimaan.net

Paavo Räisänen. WampServer palvelimen asennus ja käyttö Eclipsen kanssa, sekä ensimmäinen FTP yhteys. www.ohjelmoimaan.net Paavo Räisänen WampServer palvelimen asennus ja käyttö Eclipsen kanssa, sekä ensimmäinen FTP yhteys www.ohjelmoimaan.net Tätä opasta saa vapaasti kopioida, tulostaa ja levittää ei kaupallisissa tarkoituksissa.

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Hyvinvointikyselyjen toteuttaminen sähköisesti oppilaitoksissa

Hyvinvointikyselyjen toteuttaminen sähköisesti oppilaitoksissa Hyvinvointikyselyjen toteuttaminen sähköisesti oppilaitoksissa - Ohjeet ryhmien ja luokkien hyvinvointikyselyjen toteuttamiseen sähköisesti - Toimintamalli kehitetty osana pääkaupunkiseudun LAPE-hanketta

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

Salasanojen turvallinen tallentaminen KeePass ohjelmalla

Salasanojen turvallinen tallentaminen KeePass ohjelmalla Salasanojen turvallinen tallentaminen KeePass ohjelmalla KeePass on vapaasti saatavilla oleva, avoimen lähdekoodin ohjelma, jonka tarkoituksena on auttaa salasanojen hallinnassa. Tämä KeePass ohje on päivitetty

Lisätiedot

1 PHP-sovelluksen toiminta

1 PHP-sovelluksen toiminta AMVA48-49 HTML ja PHP-ohjelmointi, 2 ov Yleistä kurssista HTMLperusteita PHP-kielen perusrakenteet HTMLlomakkeen käsittely Tiedoston käsittely Evästeiden käyttö Istunnon hallinta Oppimistehtävät PHP-KIELEN

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

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

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityökalu Java-ohjelmistoon. Ohje Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5

Lisätiedot

Tekstinkäsittelyn jatko Error! Use the Home tab to apply Otsikko 1 to the text that you want to appear here. KSAO Liiketalous 1

Tekstinkäsittelyn jatko Error! Use the Home tab to apply Otsikko 1 to the text that you want to appear here. KSAO Liiketalous 1 KSAO Liiketalous 1 Lomakkeet Lomake on asiakirja, joka sisältää täyttämistä ohjaavia tietoja tai merkintöjä. Wordin lomakekenttä-toiminnolla luodaan näytöllä täytettäviä lomakkeita tai tulostettavia lomakepohjia.

Lisätiedot

Osaamispassin luominen Google Sites palveluun

Osaamispassin luominen Google Sites palveluun n luominen Google Sites palveluun Mikä Osaamispassi on? Osaamispassi auttaa kertomaan taidoistasi, koulutuksestasi, työkokemuksestasi ja sinua kiinnostavista asioista työnantajalle kun haet työtä. Osaamispassi

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

Collector for ArcGIS. Ohje /

Collector for ArcGIS. Ohje / Collector for ArcGIS Ohje / 10.5.2019 2 (11) Sisältö 1. Collector for ArcGIS... 3 2. Kartan luominen ArcGIS Onlinessa... 3 2.1 Karttatason luominen... 3 2.2 Ominaisuustietotaulun kenttien määrittäminen...

Lisätiedot

Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola

Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola Pedanet oppilaan ohje Aleksanteri Kenan koulu Eija Arvola 26.8.2016 SISÄLLYSLUETTELO 1. Omat asetukset kuntoon (kaikkien tehtävä aluksi) sivut 3-5 2. Tärkeiden sivujen tilaaminen omiin linkkeihin sivut

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

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

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

Katalogin luominen Coupan toimittajaportaalissa

Katalogin luominen Coupan toimittajaportaalissa CSP toimittajan luoma katalogi tarkoittaa Coupassa toimittajan tekemää katalogia, joka lähetetään Parmalle Coupan kautta hyväksyttäväksi. Coupan toimittajaportaalin Luettelot -välilehdeltä pääset katalogin

Lisätiedot

VERKKOKÄYTTÄJÄN OPAS. Tulostuslokin tallennus verkkoon. Versio 0 FIN

VERKKOKÄYTTÄJÄN OPAS. Tulostuslokin tallennus verkkoon. Versio 0 FIN VERKKOKÄYTTÄJÄN OPAS Tulostuslokin tallennus verkkoon Versio 0 FIN Oppaassa käytetyt kuvakkeet Tässä käyttöoppaassa käytetään seuraavaa kuvaketta: Vinkki kertoo, miten toimia tietyissä tilanteissa, tai

Lisätiedot

Tekstieditorin käyttö ja kuvien käsittely

Tekstieditorin käyttö ja kuvien käsittely Tekstieditorin käyttö ja kuvien käsittely Teksti- ja kuvaeditori Useassa Kotisivukoneen työkalussa on käytössä monipuolinen tekstieditori, johon voidaan tekstin lisäksi liittää myös kuvia, linkkejä ja

Lisätiedot

Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta.

Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta. Kirjaudu sisään palveluun klikkaamalla Omat kartat -painiketta. Sisäänkirjauduttuasi näet palvelun etusivulla helppokäyttöisen hallintapaneelin. Vasemmassa reunassa on esillä viimeisimmät tehdyt muutokset

Lisätiedot