Puedes hacerlo propagando las variables en los formularios:
Código PHP:
function propagar($excepciones = array())
{
$return = '';
foreach ($_POST as $clave => $valor)
{
if (!in_array($clave, $excepciones))
{
$return .= '<input type="hidden" name="'.$clave.'" value="'.$valor.'" />';
}
}
return $return;
}
O mediante las sessiones:
Código PHP:
session_start();
function guardarDatos($excepciones = array())
{
foreach ($_POST as $clave => $valor)
{
if (!in_array($clave, $excepciones) && !isset($_SESSION['dato_'.$clave]))
{
$_SESSION['dato_'.$clave] = $valor;
}
}
}
function obtenerDatos()
{
$return = array();
foreach ($_SESSION as $clave => $valor)
{
if (strpos($clave, 'dato_') === 0)
{
$return[substr($clave, 5)] = $valor;
}
}
return $return;
}
function borrarDatos()
{
foreach (array_keys($_SESSION) as $clave)
{
if (strpos($clave, 'dato_') === 0)
{
unset($clave);
}
}
}
// Empezar proceso
borrarDatos();
// Cada paso del proceso
guarDatos(array('id'));
// Final del proceso
obtenerDatos();