Lomakkeiden käsittelytekniikat - Luento 5

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

Luentotaltiointi

Lomakkeen toiminta

Lomakkeen käsittely

Lomakkeen tietojen lähettäminen vastaanottajalle

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

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

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>

Lomakkeen käsittely CGI-ohjelmalla

Tarvittavat tiedostot:

Tiedostot on siirrettävä samaan hakemistoon. laheta.txt:n nimi on muutettava muotoon laheta.cgi ja sille on annettava suoritusoikeus.

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

CGI-ohjelmien mukana tulevat tietoturvaongelmat

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

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

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/luento5/
© 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/>
2004-04-02 11:58:02
Informaatioteknologia - Jyväskylän yliopiston IT-tiedekunta ja avoin yliopisto