Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/10/2015, 06:42
Avatar de majete
majete
 
Fecha de Ingreso: noviembre-2007
Mensajes: 96
Antigüedad: 16 años, 5 meses
Puntos: 2
Paso de variables entre 4 páginas PHP

Hola a todos,
Me acaban de chafar unos cuantos días de trabajo . Me han cambiado el orden de las páginas de recogida de información de un formulario (4 en total) y ahora estoy con mil dudas de cómo pasar los datos del formulario a la página siguiente y así sucesivamente.

La estructura es la siguiente:

PAGINA1: datos personales
Creo variable de sesión y envío los datos desde el formulario por POST a la página2

PAGINA2: test
Guardo cada campo recuperado con POST (4 en total) en variables de sesión tal que así ($_SESSION["var_nombre"] = $_POST["nombre"];).
Envío los datos del test (40 preguntas) por POST a la página3

PROBLEMA! Aquí tenía pensado enviar ya todo a la BD, pero me han cambiado el orden, así que, ¿Cómo hago para guardar 40 variables en la página3 y poder pasarlas a la página 4?

Entiendo que no tiene sentido plantarme con 60 variables de sesión, ¿no?.

Había pensado dos cosas:
  • Array de variable de sesión: He buscado info y parece que no se recomienda, ya que surgen errores a la hora del tipo de dato que guarda.
  • Fichero include: Creo que es lo que se utiliza pero no me fio de mí mismo ya que desconozco el uso correcto.

Si escojo la segunda opción, sería suficiente con esto?

Fichero: variables.php
Código PHP:
<?php
session_start
(); //iniciamos el manejo de sesiones
if(isset($_SESSION["idCuestionario"])) //si la variable de sesion "idCuestionario" existe, entonces...
{
  
// metemos todos los post en un array, quitamos el botón y vaciamos
  
$array_parte1 $_POST;
  unset(
$array_parte1['Enviar']);
  
$_POST = array();
  
} else 
//en caso la variable de sesion no exista
{
echo 
"La variable Cuestionario no ha sido declarada en la sesión actual";
}
?>

Fichero: pagina3.php

Código PHP:
<?php
include 'variables.php';
?>

Muchas Gracias!!
JC

Última edición por majete; 14/10/2015 a las 06:48