Pasar un arreglo de un formulario a otro

Hola david:
Mi problema es el siguiente resulta que tengo tres formularios; en el primero lleno unos campos, en el segunda válido si se lleno primero primer formulario y entonces puedo insertar en el segundo, y en el tercer formulario debo guardar en la base de datos os datos que se introdujeron en el primer formulario y en segundo. Los dos primeros formularios los manejo mediante arreglos. Investigando encontré que se podía pasar arreglos a los formularios mediante serializacion o por sesiones. Estoy probando pasarlos por serializacion y
el código que manejo es el siguiente:
<?php // este es para enviarlos en el primer formulario
function array_envia($array) {
$tmp = serialize($array);
$tmp = urlencode($tmp);
return $tmp;
}
$array=array('$nombres','$apellidos','$sexo', '$edad' );
$array=array_envia($array);
?>
<form action="recibir_array.php" method="POST">
<input name="array" type="hidden" value="$array">
<input name="enviar" type="submit" value=" Enviar ">
</form>
<? // este es para recibirlos en el segundo formulario
function array_recibe($url_array) {
$tmp = stripslashes($url_array);
$tmp = urldecode($tmp);
$tmp = unserialize($tmp);
return $tmp;
}
$array=tiny_mce_markerPOST['array'];
$array=array_recibe($array);
foreach ($array as $indice => $valor){ // ESTA ES LA LINEA 54
echo $indice." = ".$valor."<br>";
}
?>
pero me aparece el siguiente error en el segundo formulario
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\doc\accs.php on line 54
Agradecería mucho tu ayuda, o alguna recomendación por favor

1 respuesta

1
Respuesta de
Hola,
lo que te recomiendo es que te olvides de la serialización.
El paso de valores por sesión es mucho más sencillo e intuitivo:
Sólo pon al principio de cada página:
session_start();
y después asigna variables a la matriz de sesión:
$_SESSION["tuvariable"] = "Tu valor";
$_SESSION["otra"] = "otro valor";
$_SESSION["tuarray"][2] = "un valor mas";
que podrán ser leídas y escritas en cualquier otra página:
echo $_SESSION["tuvariable];
echo $_SESSION["tuarray"][2];
Saludos.
David Cortés Braña
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje