Perjantai, 24.11.2017    
Jorkki.com

Artikkelit
   » Etusivu
   » Palaute


logo
  Artikkelit » PHP-opas

1. Alkuun
2. Ehtolause
3. Lomakkeiden käsittely
4. Tiedoston sisällyttäminen
5. Silmukat
6. Taulukot
7. Tiedostojen käsittely
8. Superglobaalit muuttujat
9. Päätäntö ja FAQ




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