Lomakkeiden käsittelytekniikat - Luento 6

Luennolla käydään läpi lomakkeiden käsittelytekniikoita.

Luentotaltiointi

Ongelmia videon katselussa?

CSS-vinkkejä

Jatkuva tausta navigointipalkille

3 column complex layout demo

Lomake-elementtien muotoilu CSS:llä: Älä tee.

Lomake-elementtien ulkomuotoilu CSS:llä on liian epävarmaa joten sitä ei juurikaan kannata tehdä. Enintään voi yrittää vaihtaa kirjasimen tyyppiä, kokoa ja tekstin ja taustan väriä. Liiallinen lomake-elementtien ulkomuodon muuttaminen oletuksesta poikkeavaksi aiheuttaa vain käytettävyysongelmia.

Lomakkeen toiminta

Lomakkeen käsittely

  1. Selainohjelma pyytää palvelimelta lomakesivun.
  2. Palvelin toimittaa sivun selaimelle.
  3. Käyttäjä täyttää ja hyväksyy lomakkeen. Selain lähettää lomakkeen tiedot WWW-palvelimella suoritettavalle ohjelmalle.
  4. Lomakkeella oleva data käsitellään ohjelman tekijän haluamalla tavalla. Ohjelma voi tehdä esimerkiksi seuraavia toimenpiteitä:
    • Erikoismerkkien käsittely (esim. ääkköset, rivinvaihdot).
    • Tarkistukset syötteelle (esim. onko jonkin kenttä oikean muotoinen, onko kaikkiin kohtiin vastattu).
    • Tiedot lähetetään edelleen sähköpostitse.
    • Tallennetaan tietokannaksi.
    • Tallennetaan suoraan osaksi jotain WWW-sivua.
    • Lomakkeen tietojen jatkokäsittelyyn voidaan käyttää monenlaisia erilaisia ohjelmistoja.
  5. Ohjelma palauttaa käyttäjälle tietoja
    • Varmistuksen tietojen lähetyksen onnistumisesta.
    • Tilauksen tai palautteen sisällön.

Lomakkeen tietojen lähettäminen vastaanottajalle

Seuraavassa käydään läpi erilaisia tapoja lähettää lomakkeen tiedot vastaanottajalle.

Tietojen lähettäminen suoraan sähköpostiin

Lomakkeen tiedot voidaan lähettää suoraan sähköpostiin seuraavan määrityksen avulla.

<form action="mailto:jmantyla@mit.jyu.fi" method="post">
...
</form>

Tätä mailto-tapaa ei pidä koskaan käyttää

Tietojen lähettäminen ohjelmalle

Palvelimella suoritettavalla ohjelmalla mahdollistetaan tietojen jatkokäsittely mahdollisimman luotettavasti.

<form action="http://palvelin/cgi-bin/kasittelija.cgi" method="post">
...
</form>

Lähettämisessä käytettävät tavat

Lomakkeen tietojen lähettämiseen on kaksi erilaista metodia (post ja get), joilla kummallakin on oma käyttökohteensa. Metodien välinen ero huomioidaan lomakkeen tiedot vastaanottavassa ohjelmassa.

post-metodi

<form action="http://palvelin/cgi-bin/kasittelija.cgi" method="post">
...
</form>

get-metodi

<form action="http://palvelin/cgi-bin/kasittelija.cgi" method="get">
...
</form>

Entiteetit ja URL-koodaus

Kaikki merkit voidaan XHTML:ssä esittää entiteetteinä. Tärkeimmät entiteetit, joita on joskus pakko käyttää:

Entiteettien lisäksi URL-osoitteissa täytyy käyttää omaa koodaustapaansa. Erikoismerkit pitää koodata heksadesimaalimuotoon. Tärkeimmät:

URL Encoding (or: 'What are those "%20" codes in URLs?')

Entiteettien ja URL-koodauksen avulla voi huijata tyhmimpiä spamrobotteja Spam-protect your email -työkalun avulla

Lomakkeen käsittely CGI-ohjelmalla

Tarvittavat tiedostot:

conf-tiedosto

laheta.conf-tiedostossa määritellään mihin lomakkeen tieto lähetetään ja millainen sivu näytetään lomakkeen lähettämisen jälkeen. conf-tiedoston on oltava samassa hakemistossa laheta.cgi:n kanssa.

Erityiskentät

Lomakkeella voidaan vaikuttaa CGI-ohjelman toimintaan käyttämällä seuraavia nimiä lomake-elementeille:

Ostoskori

Tarvittavat tiedostot löytyvät osoitteesta

http://appro.mit.jyu.fi/ostoskori/

Tallenna tiedostot esim. www-hakemiston cgi-bin-hakemistoon. Muuta ostoskori.txt -tiedoston nimeksi ostoskori.cgi

Ohjelma tunnistaa seuraavat muuttujat (name-attribuutti):

Muiden muuttujien arvoilla (value) ei ole merkitystä kunhan jonkin arvo on määritelty. Vaaditun name-attribuutin voi määritellä esimerkiksi submit-painikkeeseen:

<input type="submit" name="lisaa" value="Lisää ostoskoriin!" />

Näiden lisäksi kaikki conf-tiedostossa määriteltyjä tuotteita vastaavat lomake-elementit (name) käsitellään tuotteina ja niiden arvot (value) tuotteiden lukumäärinä. Lisäys voidaan toteuttaa joko POST- tai GET-metodin kautta. Tällöin esimerkiksi linkistä voi tehdä viittauksen ostoskoriin ja muuttaa samassa yhteydessä ostoskorin sisältöä.

conf-tiedosto

Seuraavat tiedot määräävät miten ostoskori käsitellään tilattaessa:

Seuraavat otetaan ensisijaisesti ostoskori.conf-tiedostosta, mutta voidaan myös määritellä tilauslomakkeella (esim. jos halutaan käyttäjän antaa tiedot).

Dynaaminen toiminta WWW-selaimessa

WWW-selaimessa toimivilla skriptikielillä ja muilla tekniikoilla voidaan toteuttaa vuorovaikutteisuutta ja toiminnallisuutta joka ei edellytä jatkuvaa yhteyttä WWW-palvelimeen.

Lisätekniikat aiheuttavat kuitenkin lisäriskejä tietoturvan kannalta eikä kokonaista palvelua voi rakentaa pelkästään niiden varaan.

JavaScript

JavaScript on joissain selaimissa toimiva skriptikieli, jolla voidaan toteuttaa pieniä www-selaimella toimivia toimintoja kuten tarkistaa lomakkeen syöttötietoja ennen niiden lähettämistä eteenpäin.

Javascriptillä ei ole mitään tekemistä Javan kanssa.

Tietoturvariski

ActiveX

ActiveX on sarja tekniikoita ohjelmakomponenttien liittämiseksi verkkoon. ActiveX-komponentteja

Toimii käytännössä vain Internet Explorerissa

Tietoturvariski

Java-appletit

Java-appletit ovat Java-ohjelmointikielellä toteutettuja WWW-sivuille sijoitettavia pieniä ohjelmia.

Vaativat toimiakseen käyttöjärjestelmään asennetun Java Runtime Environment (JRE) -ympäristön. Opera- ja Mozilla- selaimissa se tulee mukana mikäli niin haluaa, mutta Internet Explorerissa tuki Javalle on vain erikseen asennettuna.

WWW-palvelimen dynaamiset tekniikat

Palvelinpuolen tekniikat toteutetaan siten, että sivujen luonti ja käsittely hoidetaan palvelimessa ajettavalla ohjelmalla.

Palvelinpuolen tekniikoiden etuja ovat mahdollisuus tiedon tallentamiseen ja se, ettei selaimen tarvitse tukea muuta kuin standardia XHTML:ää.

CGI

CGI (Common Gateway Interface) määrittelee miten ja millaista tietoa voidaan välittää WWW-palvelimelta tietoa käsittelevälle ohjelmalle.

Itse ohjelma toteutetaan jollain ohjelmointikielellä, kuten esimerkiksi Perl, Python, C ja C++.

Yksinkertainen CGI-esimerkki - Lomake

PHP

PHP (HyperText Preprocessor) on dynaamisten WWW-sovellusten tekemiseen tarkoitettu tekniikka.

PHP toimii siten, että ohjelmakoodia upotetaan XHTML-sivun sekaan.

Palvelimella oleva PHP-tulkki esiprosessoi muuttujien ja muualta haettavien tietojen perusteella koodit.

PHP:lla voi lisätä sivuun lisää XHTML-elementtejä tai tehdä jonkun muun toimenpiteen (esimerkiksi tallentaa tietoa tietokantaan).

PHP-esimerkki - Lähdekoodi

Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/www/luennot/luento6/
© Jukka Mäntylä (jmantyla@mit.jyu.fi)< http://www.iki.fi/jmantyla/>
2006-02-06 13:30:06