Web-palvelinohjelmointi : Harjoitukset 7 (16p)



Sukunimi-Etunimi:LabraUID:TTV16S3
Teht:Pist:Max
h07t01:X:4
h07t02:X:4
h07t03:X:4
h07t04:X:4
h07t05:X:4
h07t06:X:8

Tehtävä 1 [4p]

 
 Eräs "tarkistuskoodi" koostuu kahdesta osasta. Pakollinen tasan viidestä numerosta koostuva merkkijono. Valinnainen jatko-osa, joka koostuu väliviivasta ja tasan neljästä numerosta.
 
 Kunnollisia tarkistuskoodeja on mm.
 
  12345
  65434
  02000
  12345-1234
  02000-1234
 
  Epävalideja ovat mm.
  ab12345
  ab12334-1234
  ab345
  12345-12345
  1234-123x
 
 
 Tee PHP-skripti tarvittavine lomakkeineen, joka suorittaa "tarkistuskoodin" muodon tarkistamisen käyttäen säännöllisiä lausekkeita

Tehtävä 2 [4p]



Sovitaan, että eräs "puhelinnumerotyyppi" eli suomalainen 040-alkuinen GSM-numero voidaan kirjoittaa mm. seuraavilla tavoilla:
040 550 7702
+358 40 550 7702
Lyheyssä muodossa on aina yhteensä 10 numeroa. Lyhyen muodon ryhmittelynä eli välilyöntien paikkoina sallitaan seuraavat:

040 550 7702
040 550 770 2
040 5507702
0405507702

Pitkän muodon loppuosan tulee noudattaa aina jotakin lyhyen muodon ryhmittelyä. Pitkässä muodossa merkkijono "+358" tai "+358 " korvaa lyhyen muodon ensimmäisen nollan. Pitkän muodon ryhmittelyjä voivat olla siis:

+35840 550 7702
+35840 550 770 2
+35840 5507702
+358405507702

+358 40 550 7702
+358 40 550 770 2
+358 40 5507702
+358 405507702

Esimerkkinä käytetyt numerot "550 7702" voivat tietenkin olla mitä tahansa numeroita.

Tee PHP-skripti tarvittavine lomakkeineen, joka suorittaa em. puhelinnumeron muodon tarkistamisen käyttäen säännöllisiä lausekkeita. Tarkistus tulee tehdä yhdellä lausekkeella.

Tehtävä 3 [4p]



Tätä tehtävää ei tehdä!

Tee pieni Web-sovellus, joka saa syötteenä (http-) URLin. Sovellus hakee kohteena olevasta URLista löytyvästä HTML-dokumentista kaikki hyperlinkit ja listaa nämä käyttäjälle esimerkiksi järjestämättömänä listana (UL, "pampulalista").



Vinkki: Tämä tehtävä ratkeaa ehkä helpoimmin preg_match_all -funktiolla:  http://fi.php.net/preg_match_all. Muillakin onnistuu.

Tehtävä 4 [4p]

 
Paranna aiemmin http://student.labranet.jamk.fi/~ara/ttms0900/07-2017-vko-06/ esitellyn äänestyssovelluksen tulosjulkaisua grafiikan osalta siten, että luot "tulospalkit" käyttämällä GD-kirjastoa. Toteutus vapaa. Kuvissatulee olla kuitenkin tekstuaalisena esityksenä äänestettävistä asioista joko äänimäärä tai äänestetyn asian prosentuaalinen osuus. Esim.
* = Keltainen
-- = Punainen

Pinaatti |  15 ääntä | [***************75 %-----]
Salaaatti| 5 ääntä | [*****25 %---------------]

Tehtävä 5 [4p]



Paranna aiemmin esitellyn äänestyssovelluksen tulosjulkaisua grafiikan osalta siten, että luot "komean esitysgrafiikan" tuloksista joko JPGraph- tai Google Charts -kirjaston avulla.


Tehtävä 6 [8p]



Tätä tehtävää ei tehdä!

Tee PHP-ohjelma, jonka käyttölittymän välityksellä käyttäjä voi seurata RSS-feedejä. Käyttäjä voi
  1. lisätä RSS-feedin seurattavien listalle,
  2. poistaa RSS-feedin seurattavien listalta,
  3. muokata RSS-feedin tietoja, joita ovat
    • URL, josta RSS-feed on tarjolla
    • tilatieto On/Off, jonka perusteella listalle kuuluva RSS-feedin sisältö joko näytetään (On) muiden feedien ohessa tai ei (Off)
  4. Listata kaikkien RSS-feedien sisällöt yhdellä sivulla. Tämä sivu on tavallinen HTML-sivu, joka esiprossessoidaan (tehdään etukäteen) erikseen CLI-PHP-ohjelmalla. Tämä CLI-PHP-ohjelma hakee esim. tunnin välein (testivaiheessa käytä pienempää aikaa) valittujen RSS-feedien sisällön ja generoi kyseisen HTML-sivun.

Vinkki: Tietojen tallentamiseen voit käyttää tietokantaa tai XML/TSV-formaatin tekstitiedostoa valintasi mukaan. TSV-rakaisussa voit käyttää hyväksesi aiemmin esitetttyä "puhlu.php" -ohjelmaa.


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!