⊗ppPmFmChcN 307 of 447 menu

Matices del uso de casillas de verificación en PHP

Supongamos que en nuestro formulario solo hay una casilla de verificación:

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

Supongamos que el código de procesamiento de nuestro formulario se ve así:

<?php if (!empty($_GET)) { // si el formulario fue enviado if (isset($_GET['flag'])) { // si la casilla está marcada echo 'marcado'; } else { echo 'no marcado'; } } ?>

Nos espera un problema: si la casilla no está marcada, entonces, dado que en el formulario no hay otros elementos además de la casilla de verificación, en $_GET habrá un array vacío. Esto significa que en el código de procesamiento del formulario no entraremos en el primer if, que verifica el envío del formulario.

Para resolver el problema, se utiliza una técnica especial: crear un campo de entrada oculto con el mismo nombre que nuestra casilla de verificación. Al mismo tiempo, el valor del campo oculto se establece en cero, y el de la casilla de verificación, en uno:

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

En este caso, ocurrirá lo siguiente. Si la casilla de verificación no está marcada, solo se enviará el valor del campo oculto al servidor. Si la casilla de verificación está marcada, se enviarán ambos valores con un mismo nombre al servidor. Pero, dado que el valor de la casilla de verificación será el segundo, simplemente sobrescribirá al primero.

Entonces, ahora nuestra casilla de verificación enviará al servidor cero o uno:

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

Usemos esto en nuestra verificación:

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

Usando una casilla de verificación, pregunte al usuario si ya tiene 18 años o no. Si los tiene, permítale el acceso al sitio, y si no, no se lo permita.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar