⊗ppPmFmChcN 307 of 447 menu

Nuanțe ale utilizării casetelor de bifat în PHP

Să presupunem că în formularul nostru există doar o casetă de bifat:

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

Să presupunem că codul de procesare al formularului nostru arată astfel:

<?php if (!empty($_GET)) { // dacă formularul a fost trimis if (isset($_GET['flag'])) { // dacă caseta este bifată echo 'bifat'; } else { echo 'nebifat'; } } ?>

Ne așteaptă o problemă - dacă caseta nu este bifată, atunci, deoarece în formular nu există alte elemente în afară de caseta de bifat, în $_GET va fi un array gol. Aceasta înseamnă că în codul de procesare al formularului nu vom intra în primul if, care verifică trimiterea formularului.

Pentru a rezolva această problemă, se utilizează o tehnică specială: se creează un input hidden cu același nume ca și caseta noastră de bifat. În acest caz, valoarea input-ului hidden se setează la zero, iar a casetei de bifat - la unu:

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

În acest caz, se va întâmpla următoarele. Dacă caseta de bifat nu este bifată, atunci pe server va fi trimisă doar valoarea input-ului hidden. Dacă însă caseta de bifat este bifată, atunci pe server vor fi trimise ambele valori cu același nume. Dar, deoarece valoarea casetei de bifat va fi a doua, aceasta va înlocui prima.

Deci, acum caseta noastră de bifat va trimite pe server fie zero, fie unu:

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

Să utilizăm acest lucru în verificarea noastră:

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'bifat'; } else { echo 'nebifat'; } } ?>

Folosind o casetă de bifat, întrebați utilizatorul dacă are deja 18 ani sau nu. Dacă are, permiteți-i accesul pe site, iar dacă nu - nu-i permiteți.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge