> Faqs > Problemas de reconocimiento de variables entre paginas enviadas por post con PHP

Problemas de reconocimiento de variables entre paginas enviadas por post con PHP

Tengo 3 páginas, la primera envía los datos de un formulario a la segunda y la segunda envía nuevos datos a una tercera página. Los datos se envían por POST y se reciben mediante PHP. Los formularios deben funcionar en secuencia.

¿Por qué no se reciben los datos de la página A en la página C?

Pagina A:

<form action="PaginaB" method="POST">

<input type="text" name="cantidad">
<input type="submit">

</form>

Pagina B:

<form action="PaginaC" method="POST">

<input type="text" name="precio">
<input type="submit">

</form>

Pagina C:

<?php
echo $_POST["cantidad"] * $_POST["precio"];

$unidades = $_POST["cantidad"];

$importe = $unidades *  $_POST["precio"];

echo $importe;

?>
  • Me envia ERROR variable cantidad no defina linea x
  • Me envia ERROR variable cantidad no defina linea y

Respuestas

Es normal lo que te ocurre, dado que los datos que recibes en la página C son los que el formulario de la página B te envía. Desconoce totalmente los datos que página A había enviado a Página B.

Si quieres que el formulario de la página B le envíe los datos a la página A, entonces necesitas que el fomulario de la página B incluya también los campos de la página A, aunque sea en campos ocultos del formulario.

<input type="hidden" name="cantidad" value="<?= $_POST["cantidad"] ?>">

La otra solución que podrías realizar es almacenar los datos en variables de sesión y consultar en la página C esas variables de sesión. Las variables de sesión con los datos del formulario de la página A, las creas en la página B y por tanto en la página C las tendrás disponibles.

Julian
455 15 37 28
Es el desconocer el funcionamiento del atributo hidden. Solucionado. Gracias.