Web-palvelinohjelmointi : Harjoitukset 2 (20p)

Sukunimi-Etunimi:LabraUID:TTV16S3
Teht:Pist:Max
h02t01:X:3
h02t02:X:3
h02t03:X:4
h02t04:X:4
h02t05:X:4

Tehtävä 1 [3p]



Toteuta PHP-kielellä ohjelma, joka tulostaa sivun ylälaitaan tekstin valitsemiesi valintaruutujen mukaan. Valitut valintaruudut tulee pysyä valittuina peräkkäisillä sivun latauskerroilla.

On väsy. On perjantai.

Mikä on?
Väsy
Pää kipiä
Perjantai


Tehtävä 2 [3p]



Toteuta PHP-kielellä ohjelma, joka vaihtaa sivun taustavärin ja tekstin värin valittujen radiopainikkeiden mukaan. Valitut radiopainikkeet tulee pysyä valittuina peräkkäisillä sivun latauskerroilla.

Taustaväri: Valkoinen
Keltainen
Harmaa
Sininen
Tekstiväri: Musta
Punainen
Vihreä
Sininen


Tehtävä 3  [4p]



Toteuta PHP-kielellä ohjelma, jossa pudotusvalikon (ComboBox) avulla voidaan valita  tulostettavaksi linkkilista liittyen valittuun aihealueeseen (esim. Urheilu, Musiikki, Tietokoneet, ...). Linkkilistan tiedot voivat olla tallennettuna ohjelmakoodiin (hard-coded).

Viimeistele ohjelmasi sitten siten, että käyttäjä voi valita monta aihealuetta ja kaikkien näiden linkkivalikoimat tulostetaan näkyville.

Käyttöliittymä voi näyttää vaikkapa seuraavalta:


Päivää urheilun ystävä, tässäpä muutama linkkiPäivää kirkkojen ystävä, tässäpä muutama linkki

Vinkki: Anna Select-elementin name-määritteen arvoksi harrastus[], jolloin voit käydä PHP-ohjelmassa taulukon läpi foreach-lauseella:

foreach ($harrastus as $arvo) {
...
}

Tehtävä 4 [4p]



Toteuta PHP-kielellä sovellus "Hullu nappi" http://netisto.fi/hullu-nappi.php Ohjelmasi riittää tulostaa ainoastaan kolme ensimmäistä viestiä.

Tehtävä 5 [4p]

Tee PHP-kielellä "Haluatko miljonääriksi kilpailuun -sovellus", joka laskee pistemäärän 3+n kysymyksen monivalintakysymyssarjasta. Tiedon pistemäärästä tarvitsee vain sovelluksen käyttäjä. Tiedot vaihtoehtojen pisteistä pidetään ohjelmakoodissa (hard-coded). Nimeä lomakkeen kentät siten (kysymys1, kysymys2, kysymys3, ...,???), että voit halutessasi käyttää "muuttuja muuttujan nimiosana"-tekniikkaa pisteiden yhteenlaskussa (esim. luomalla muuttujia "lennosta" for-lauseen sisällä).Tuloksia ei tarvitse tallentaa palvelimelle. Ohjelmakoodi käyttöliittymineen on tallennettuna samassa tiedostossa.

Kysymystyypit käyttöliittymineen ovat seuraavia:

  1. Ensimmäisessä kysymystyypissä on kolme vaihtoehtoa, joista vain yksi on oikea. Oikeasta vastauksesta saa pisteen, väärästä vastauksesta ei vähennetä pisteitä. Käyttöliittymän toteutus valintanapeilla (radiobutton). Toteuta ainakin yksi tällainen kysymys:

    Hauki on kala
    Hauki on lintu
    Hauki on kissa

  2. Toisessa kysymystyypissä (Kuvissa tehtävä 2)on kolme vaihtoehtoa, joista vain yksi on oikea. Oikeasta vastauksesta kaksi pistettä, väärästä vastauksesta vähennetään kaksi pistettä. Käyttöliittymän toteutus yhdistelmäruudulla (Combo Box) siten, että jokin vaihtoehto on valittava. Toteuta ainakin yksi tällainen kysymys:



  3. Kolmannen osion(Kuvissa tehtävä 3 ja 4) kussakin kysymyksessä on kolme vaihtoehtoa, joista oikeita voi olla 0-3kpl. Oikeasta vastauksesta lisätään 3 pistettä ja väärästä vähennetään 3 pistettä. Mitään vaihtoehtoa ei ole pakko valita, toisaalta voidaan valita kaikki. Käyttöliittymän toteutus valintaruuduilla (checkbox). Toteuta ainakin kaksi tällaista kysymystä.
Mega on miljoona
Giga on miljoona
Haluan miljonääriksi


Tehtävä 6 [6p]



Tämä tehtävä ei kuulu tähän tehtäväsarjaan!

Toteuta oheisen käyttöliittymän mukainen ohjelma PHP-kielellä. Vaatimukset:  Nähtävät säätiedot haetaan klikkaamalla haluttua hyperlinkkiä, jolloin
-

Vinkkikoodinpätkä



<?php
$city="Jyvaeskylae";
$country="FI"; //Two digit country code
$url="http://api.openweathermap.org/data/2.5/weather?APPID=95983d94fe41bc5ebaa8e558b25e915f&q=".$city.",".$country."&units=metric&cnt=7&lang=en";
$json=file_get_contents($url);
$data=json_decode($json,true);
//Get current Temperature in Celsius
echo $data['main']['temp']." Celsius <br>";
//Get weather condition
echo $data['weather'][0]['main']."<br>";
//Get cloud percentage
echo $data['clouds']['all']." % pilvistä<br>";
//Get wind speed
echo $data['wind']['speed']." m/s tuulta<br>";

?>


Huomaa: Jos et pääse paikalle palautuspäivänä, voit palauttaa harjoitukset viimeistään harjoituksia edeltävänä päivänä meilitse Ari.Rantala (at) jamk.fi kertomalla URLin, josta toimivat ratkaisut voi testata ja lähdekoodit nähdä pelkästään Web-selaimen avulla Ei ohjelmia liitetiedostoina!