|
 |
Artikkelit » PHP-opas
|
 |
|
|
Lomakkeiden käsittely
Huom! Lue myös Superglobaalit muuttujat, koska nämä esimerkit eivät välttämättä toimi PHP:n nykyisessä versiossa.
Esimerkki 5.
Numeron arvaus:
<?php
$lomake="<form action=\"$PHP_SELF\" method=\"post\">
Arvaa numero: <input type=\"text\" name=\"arvattava_numero\" size=\"5\" maxlength=\"80\" value=\"\">
<br>
<input type=\"submit\" value=\"Arvaa\">
</form>";
if ( $arvattava_numero == "" )
{
print $lomake;
}
elseif ( $arvattava_numero == "10" )
{
print "Arvasit oikein!";
}
elseif ( $arvattava_numero < "10" )
{
print "Arvaamasi numero on liian pieni.<br>";
print "Arvaa uudestaan:<br>$lomake";
}
else
{
print "Arvaamasi numero on liian iso.<br>";
print "Arvaa uudestaan:<br>$lomake";
}
?>
Näe esimerkkiskripti 5 toiminnassa.
- Helpotamme arvauslomakkeen tulostamista tallentamalla sen aluksi muuttujaan $lomake. Kun HTML-koodia tallennetaan muuttujaan, täytyy HTML-tagien lainausmerkkien (") edessä olla kenoviiva (\), jotta skripti toimisi.
- action="$PHP_SELF" tarkoittaa, että lomake samassa skriptissä. Jos lomake käsiteltäisiin jossain toisessa skriptissä tulisi se tehdä näin: ...action="skriptinnimi.php"... Tätä tapaa käytämme seuraavassa esimerkkiskriptissä.
- <input...name="arvattava_numero"...> tarkoittaa, että tekstikenttään annettava merkkijono tallennetaan muuttujaan $arvattava_numero.
- if ( $arvattava_numero == "" ) testaa, että onko muuttujaan $arvattava_numero tallennettu mitään arvoa. Jos siihen ei ole tallennettu mitään tulostaa skripti lomakkeen. Näin on esimerkiksi, kun sivua ladataan ensimmäisen kerran.
- elseif ( $arvattava_numero == "10" ) -lausella päätämme, että arvattava numero on kymmenen ja jos kävijän arvaus osuu oikeaan tulostetaan "Arvasit oikein!".
- elseif ( $arvattava_numero < "10" ) testaa, onko arvattava numero pienempi, kuin kymmenen. Jos näin on, tulostaa skripti "Arvaamasi numero on liian pieni" ja lisäksi arvauslomakkeen.
- Mikäli arvattava numero ei ole yhtä suuri, kuin 10 tai pienempi, kuin 10, on sen pakko olla suurempi kuin kymmenen, eli else -lauseella tulostamme "Arvaamasi numero on liian iso." ja lisäksi arvauslomakkeen.
- Ohjelmoijan on otettava kaikki mahdolliset tilanteet huomioon. Pitää ajatella, että ohjelman käyttäjä on tyhmä ja
saattaa kokeilla kaikkea mahdollista. Erästä asiaa ei tässä otettu huomioon: Mitä jos käyttäjä antaakin numeron sijasta kirjaimen
tai jonkun muun merkin? Siinä tapauksessa toteutetaan tietenkin else-lause. Täydellisessä ohjelmassa testattaisiin, että
käyttäjän antama merkkijono on varmasti luku.
Sitten toinen tapa tehdä samanlainen numeron arvausskripti:
Esimerkki 6.
Osa 1/2 (arvauslomake.html)
<form action="arvauslomake.php" method="post">
Arvaa numero: <input type="text" name="arvattava_numero" size="5" maxlength="80" value="">
<br>
<input type="submit" value="Arvaa">
</form>
Esimerkki 6.
osa 2/2 (arvauslomake.php)
<?php
if ( $arvattava_numero == "10" )
{
print "Arvasit oikein!";
}
elseif ( $arvattava_numero < "10" )
{
print "Arvaamasi numero on liian pieni.";
}
else
{
print "Arvaamasi numero on liian iso.";
}
?>
Näe esimerkkiskripti 6 toiminnassa.
- Osassa 1/2 (arvauslomake.html) oleva kohta action="arvauslomake.php" tarkoittaa, että lomake käsitellään skriptissä, jonka nimi on arvauslomake.php.
- Osassa 2/2 (arvauslomake.php) käsittelemme lomakkeen samalla tavalla, kuin esimerkissä 5.
- Sanomattakin on selvää, että tämäntyylinen arvausskripti on huomattavasti kätevämpi suorittaa esimerkin 5 tavalla. Monimutkaisemmissa skripteissä on kuitenkin usein selkeämpi käsitellä lomake eri skriptissä.
Seuraava luku
|
|
© JC Web Productions
|