PHP Paso de datos utilizando campos ocultos
Revisión del 18:26 13 sep 2026 de Angelfg (discusión | contribuciones)
Paso de datos mediante campos ocultos
- Outra forma de pasar información dunha páxina á seguinte consiste en empregar campos ocultos dun formulario mediante:
<input type="hidden">
- Os campos ocultos non se amosan visualmente no formulario, pero o seu valor envíase xunto co resto dos campos cando se realiza o submit.
- Esta técnica ten unha limitación importante: os datos só se envían cando se envía o formulario. Polo tanto, é necesario que exista un formulario que conteña os campos ocultos.
- Por exemplo, podemos gardar temporalmente un nome nun campo oculto:
<?php $datoAGardar = 'Angel'; ?> <form action="seguinte.php" method="post"> <input type="hidden" name="campoOcultoNome" value="<?= htmlspecialchars( $datoAGardar, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8' ) ?>" > ``` <button type="submit">Continuar</button> ``` </form>
- Na páxina seguinte.php poderiamos recuperar o valor mediante:
$nomeRecibido = $_POST['campoOcultoNome'] ?? ''; if (!is_string($nomeRecibido)) { $nomeRecibido = ''; } $nome = trim($nomeRecibido);
- Este mecanismo pode empregarse, por exemplo, nun formulario dividido en varias páxinas, no que queremos enviar á seguinte páxina parte da información introducida anteriormente.
- Por exemplo:
Páxina 1 ↓ nome = Ana Páxina 2 ↓ <input type="hidden" name="nome" value="Ana"> ↓ idade = 20 Páxina 3 ↓ recibe nome + idade
- IMPORTANTE: Un campo oculto non é un campo secreto.
- Aínda que non apareza visualmente no formulario, o usuario pode inspeccionar e modificar o seu valor empregando as ferramentas do navegador ou enviando manualmente unha petición HTTP.
- Polo tanto, os valores recibidos mediante campos ocultos deben tratarse igual que calquera outro dato recibido desde o cliente:
- Deben ser validados no servidor.
- Non deben empregarse directamente para tomar decisións de seguridade.
- Non debemos confiar neles para gardar información como permisos, roles, prezos ou identificadores aos que o usuario non debería poder acceder.
- Por exemplo, non sería seguro confiar directamente nun campo como:
<input type="hidden" name="prezo" value="100">
- porque o usuario podería modificar o valor antes de enviar o formulario:
<input type="hidden" name="prezo" value="1">
- O prezo real debería obterse novamente no servidor, por exemplo consultando a base de datos a partir do identificador do produto.
- Os campos ocultos son útiles para transportar información entre formularios, pero cando necesitamos manter información de forma fiable entre varias páxinas dunha aplicación normalmente empregaremos sesións, que veremos posteriormente.
-- Ángel D. Fernández González -- (2026).