PHP Paso de datos utilizando campos ocultos

De MediaWiki
Revisión del 18:26 13 sep 2026 de Angelfg (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Ir a la navegación Ir a la búsqueda

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).