PHP + checkbox

Kysymys on varmaan tyhmä, mutta niin on kysyjäkin. Apua kaivattaisiin silti.

Eli minulla on lomake, jossa on checkbox:

testi
Lomakkeen tiedot lähetetään toisen php-tiedoston kautta tietokantaan.
Tässä toisessa tiedostossa on seuraava rivi, joka ottaa checkboxin tiedon vastaan:
$testi = $_REQUEST['testi'];

Kaikki menee hyvin jos checkbox valitaan. Jos se jätetään valitsematta niin siitä seuraa seuraava virheilmoitus lomaketta lähettäessä:

Notice: Undefined index: testi in palvelin:\testi.php on line 18

Ja checkboxia ei missään nimessä ole pakko valita, joten miten pääsisin tuosta virheilmoituksesta eroon?
3890
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

Ei toi virheilmoitus ole :)

Yleensä noi huomautukset kannattaa laittaa pois PHP:n asetuksista, koska niitä tarvitaan vain scriptin kehitys vaiheessa. Sekä turvallisuudenkin kannalta on huono asia näyttää kävijälle suoraan PHP:n virhe ilmoitukset, mielummin logiin josta katsotaan ne.

Laitappas scriptin alkuun
error_reporting(E_ALL ^ E_NOTICE);
Joka piilottaa huomautukset, mutta näyttää muut virheilmoitukset.

Tai
error_reporting(0);
Joka piilottaa kaikki virheilmoitukset.


Tai sitten korjataan itse virhe
$testi = empty($_GET['testi']) ? '' : $_GET['testi'];

Tämä meinaa sitä, jos _GET[testi] ei saa arvoa, niin laitetaan se tyhjäksi, huom 0 == tyhjä. Jos nollaa pitää käyttää, niin tota pitää sitten pikkasen muuttaa.


REQUEST tilalla kannattaa käyttää joko GET tai POST riippuen kummalla metodilla lomake tiedot lähettää, nopeempa, näkee mistä saa arvon .....

Äänestä
  • Voishan sitä laittaa nollankin suvaitsevan

    $testi = isset($_GET['testi']) ? $_GET['testi'] : '';

    Äänestä

Laita siihen joku tarkistus onko kyseistä muuttujaa olemassa. Esim. :

if( isset($_REQUEST['testi']) ){

$testi = $_REQUEST['testi']

}

Itse käyttäisin $_REQUEST:n sijaan joko $_POST tai $_GET riippuen siitä millä tavalla data siirtyy..

Äänestä

Kommentoi aloitusta


tinni kirjoitti:

Kysymys on varmaan tyhmä, mutta niin on kysyjäkin. Apua kaivattaisiin silti.

Eli minulla on lomake, jossa on checkbox:

testi
Lomakkeen tiedot lähetetään toisen php-tiedoston kautta tietokantaan.
Tässä toisessa tiedostossa on seuraava rivi, joka ottaa checkboxin tiedon vastaan:
$testi = $_REQUEST['testi'];

Kaikki menee hyvin jos checkbox valitaan. Jos se jätetään valitsematta niin siitä seuraa seuraava virheilmoitus lomaketta lähettäessä:

Notice: Undefined index: testi in palvelin:\testi.php on line 18

Ja checkboxia ei missään nimessä ole pakko valita, joten miten pääsisin tuosta virheilmoituksesta eroon?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu