Lomakkeiden käsittelytekniikat - Luento 6

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

Luentotaltiointi

Ongelmia videon katselussa?

Kertaus

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>

Tavan käyttäminen ei kannata, ellei ole aivan pakko, koska tavassa piilee seuraavia ongelmia.

Tietojen lähettäminen ohjelmalle

Palvelimella suoritettavalla ohjelmalla mahdollistetaan tietojen jatkokäsittely mahdollisimman luotettavasti. Jos suinkin mahdollista, niin jonkinlaista ohjelmaa kannattaa käyttää tietojen vastaanottamisessa.

<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, joilla kummallakin on oma käyttökohteensa. Metodien välinen ero huomioidaan lomakkeen tiedot vastaanottavassa ohjelmassa. Lähetettävän tiedon muodon voi myös tarvittaessa päättää.

method

enctype

Lomakkeen käsittely CGI-ohjelmalla

Tietojen lähettäminen sähköpostiin

Tarvittavat tiedostot:

CGI-ohjelma ja conf-tiedosto on siirrettävä samaan hakemistoon. laheta.txt:n nimi on muutettava muotoon laheta.cgi ja sille on annettava suoritusoikeus. Lomake voi olla eri hakemistossa.

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

Ostoskori

Ostoskorin käsittely

Tarvittavat tiedostot löytyvät osoitteesta (huom. keskeneräinen versio!):

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

Kyseisten 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ä myös tilauslomakkeella name-value-parilla (esim. jos halutaan käyttäjän antaa tiedot).

Ohjelmien tietoturva ja tiedosto-oikeudet

Ohjelmia käytettäessä on varmistettava, ettei käyttäjä pääse tekemään ohjelmalla muuta kuin mitä sillä on tarkoitettu tehtävän.

Tekniikoita käsittelyyn ja tarkistuksiin

Vuorovaikutteisuutta ja tiedon käsittelyä voidaan hoitaa eri tyyppisillä tekniikoilla, joilla kullakin on omat vahvuutensa. Tekniikat voidaan jakaa kahteen ryhmään: palvelinpuolen ja selainpuolen tekniikoihin. Vaihda esimerkeissä dokumentin lomake.html form-elementin action- attribuuttiin sopiva ohjelma.

Palvelinpuolen tekniikat

Palvelinpuolen tekniikat toteutetaan siten, että sivujen luonti ja käsittely hoidetaan palvelimessa ajettavalla ohjelmalla. Ohjelma käsittelee tietyllä tekniikalla tehtyä sivustoa suhteessa käyttäjän antamiin tietoihin ja palauttaa tavallisen XHTML-sivun. 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++. Näistä suosituin on tulkattava kieli Perl (ohjelmaa ei käännetä konekielelle vaan palvelimeen on asennettava Perl- tulkki).

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. Koodi voi lisätä sivuun lisää XHTML-elementtejä tai tehdä jonkun muun toimenpiteen (esimerkiksi tallentaa tietoa tietokantaan).

PHP-esimerkki - Lähdekoodi

ASP

ASP on PHP:n kaltainen palvelimessa käsiteltävä ohjelmakoodin upotustekniikka, jota käytetään lähinnä Microsoftin palvelimissa (saatavilla myös Apacheen). Ohjelmointikielenä käytetään tavallisesti VBScriptiä.

ASP-esimerkki - Lomake - kokeile webserver1-palvelimella (eli V-asemalla)

Servletit ja JSP

Servletit ovat pieniä palvelimella ajettavia Java-kielellä tehtyjä ohjelmia, joilla voidaan luoda dynaamisesti sivuja ja tehdä muita palvelinkoneella suoritettavia toiminteita. JSP on PHP:n ja ASP:n kaltainen upotustekniikka, jossa koodi kirjoitetaan XHTML:n sekaan. JSP-tulkki kääntää sivut suoritettaviksi Servleteiksi.

Selainpuolen tekniikat

Selainpuolen tekniikoilla voidaan toteuttaa monipuolista vuorovaikutteisuutta ja toiminnallisuutta sivustolle. Esimerkiksi lomakkeen tarkistukset voidaan tehdä sopivilla selaintekniikoilla. Ongelmana on, että selainpuolen tekniikat joudutaan yleensä asentamaan erikseen, jolloin ei voi olla varma toimiiko sivusto kaikilla käyttäjillä. Lisätekniikat aiheuttavat myös lisäriskejä tietoturvan kannalta. Jotkut tekniikat vaativat myös nopeaa internetyhteyttä.

Java-appletit

Java-appletit ovat Java-ohjelmointikielellä toteutettuja WWW-sivuille sijoitettavia pieniä ohjelmia. Vaatii 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 Microsoft on poistanut viimeisimmistä Internet Explorer -selaimistaan kokonaan tuen Java-appleteille.

JavaScript

JavaScript on vain 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. Vaatii toimiakseen selaimelta JavaScript-tuen.

ActiveX

ActiveX on sarja tekniikoita ohjelmakomponenttien liittämiseksi verkkoon. ActiveX-komponentteja voidaan ohjelmoida esimerkiksi Delphi-, Builder- tai Visual Basic -kehitysympäristöillä. Komponentteja ja lomakkeita voidaan ohjailla VBScript- tai JavaScript-kielillä. Internet Explorer tukee ActiveX-ominaisuuksia, Mozillaan erikseen asennettavissa, Opera ei tue.

Flash

Flash-sovellukset ovat WWW-sivuille upotettuja vektorigrafiikalla toteutettuja multimediaesityksiä. Flash-esitykseen voidaan lisätä vuorovaikutteisia elementtejä, esim. kyselylomakkeita. Lomakkeen käsittely on tehtävä kuitenkin jollain muulla tekniikalla. Käytetään paljon esimerkiksi mainoksissa. Vaatii toimiakseen selaimeen asennetun Flash-laajennuksen. Lisää Flashin multimedia- ominaisuuksista luennolla 8.

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/www/luennot/luento6/
© Antti Ekonoja (anjoekon@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
Jukka Mäntylä (jmantyla@iki.fi) <http://www.iki.fi/jmantyla/>
2005-01-14 18:47:14
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto