Alla on pikku esimerkki html-lomakkeesta ja php-tiedostosta, joka lähettää lomaketiedot sähköpostiin.
----------html-lomake:----------------------
Ikä:
alle 20
20-29
Yli 30
Tekstiä:
Valitse vaihtoehdoista:
Päärynä
Omena
Banaani
--------------------------------------------------
Ja tässä lomake.php -tiedosto, joka lähettää lomakkeen tiedot eteenpäin sähköpostilla (tähän ei ole vielä haettu checkboxien arvoja):
----------html-lomake:----------------------
Ikä:
alle 20
20-29
Yli 30
Tekstiä:
Valitse vaihtoehdoista:
Päärynä
Omena
Banaani
--------------------------------------------------
Ja tässä lomake.php -tiedosto, joka lähettää lomakkeen tiedot eteenpäin sähköpostilla (tähän ei ole vielä haettu checkboxien arvoja):
Vastaukset 5
Vanhimmat
if ( ! empty( $_POST['ika'] ) )
{
____foreach ( $ika as $arvo )
___{
_____print "$arvo\n";
___}
}
Emptyä käytettäessä myös 0 (nolla) on tyhjä tieto, joten emptyn käytössä kannattaa olla tarkkana, tosin tuossa tuo ei haita.
if (isset($_POST['ika']))...
Hyväksyy myös nollatkin
Tuossa olen itse käyttänyt tarkistetta if($_POST['syote']) != NULL){
Jutut
}
else{
jotain muuta;
}
Tuossa oli keskustelua NULL arvosta ja ainakaan tossa käsittelyssä ei ei tulkitse nollaa nulliksi, vaikka täällä oli porukkaa, jotka "tiesi" asian toisin. Eli minusta nullin käyttö on suositeltava tapa tarkistaa onko siellä muuttujassa kamaa vai ei.
Ei hyvä, tuolla opitaan pahoille tavoille joista sitten aiheutuu myöhemmin ongelmia.
"Tuossa oli keskustelua NULL arvosta ja ainakaan tossa käsittelyssä ei ei tulkitse nollaa nulliksi, vaikka täällä oli porukkaa, jotka "tiesi" asian toisin."
Niin GET ja POST taulukoissa tieto tulee string:nä ei int tyyppisenä. PHP on löyhästi tyypitetty joka aiheuttaa myös omat ongelmansa.
$string = '0';
$int = 0;
Joten jos tuota sinun tapaasi haluaa käyttää niin vertaillaan tietotyyppien kans.
Siis
=== ja !==
Kuten huomaat tuosta esimerkistä niin vain isset ja
!== NULL ovat tosia. Poistamalla kommentti merkit niin kaikki ovat tosia. PS. Tiedetään että GET ja POST taulukoihin ei scriptissä saa tietoa kirjoittaa, mutta tuo on vain esimerkki.
Tuohon jäi vahingossa ylimääränen $_GET['testi'] = 0; kun aattelin aluks tehdä toisenlaisen esimerkin.