⊗ppPmFmChcN 307 of 447 menu

Podrobnosti uporabe potrditvenih polj v PHP

Recimo, da je v našem obrazcu le potrditveno polje:

<form action="" method="GET"> <input type="checkbox" name="flag"> <input type="submit"> </form>

Naj koda za obdelavo našega obrazca izgleda takole:

<?php if (!empty($_GET)) { // če je bil obrazec poslan if (isset($_GET['flag'])) { // če je potrditveno polje označeno echo 'označeno'; } else { echo 'ni označeno'; } } ?>

Pričakuje nas težava - če potrditveno polje ni označeno, potem, ker v obrazcu poleg potrditvenega polja ni drugih elementov, bo v $_GET prazen seznam. To pomeni, da v kodi za obdelavo obrazca ne bomo prišli v prvi if, ki preverja pošiljanje obrazca.

Za rešitev težave uporabijo poseben postopek: ustvarijo skriti vnos z enakim imenom, kot je naše potrditveno polje. Pri tem vrednost skritega vnosa nastavijo na nič, potrditvenega polja pa na ena:

<form action="" method="GET"> <input type="hidden" name="flag" value="0"> <input type="checkbox" name="flag" value="1"> <input type="submit"> </form>

V tem primeru se bo zgodilo naslednje. Če potrditveno polje ni označeno, bo na strežnik poslan le vrednost skritega vnosa. Če pa je potrditveno polje označeno, pa bosta na strežnik poslani obe vrednosti z enim imenom. Toda, ker bo vrednost potrditvenega polja druga, bo preprosto povošila prvo.

Torej, zdaj bo naše potrditveno polje pošiljalo na strežnik bodisi nič, bodisi ena:

<?php var_dump($_GET['flag']); // '0' ali '1' ?>

Uporabimo to v našem preverjanju:

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'označeno'; } else { echo 'ni označeno'; } } ?>

S potrditvenim poljem vprašajte uporabnika, ali je star 18 let ali ne. Če je, mu dovolite dostop do spletnega mesta, če pa ni - mu ga ne dovolite.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni