Ver Mensaje Individual
  #6 (permalink)  
Antiguo 10/01/2014, 06:52
razierplus2
 
Fecha de Ingreso: enero-2014
Mensajes: 75
Antigüedad: 10 años, 10 meses
Puntos: 11
Respuesta: variables de sesion en array

mmm, interesante, ahora lo voy viendo mas claro.

Cita:
session_start();
if (isset($_SESSION['mi_reserva'])){
$reserva=$_SESSION['mi_reserva'];
} else {
$reserva=array();
}
$indice=count($reserva)+1;

$reserva[$indice]["percentage"] = $_POST['percentage'];
$reserva[$indice]["llegada"] = $_POST['llegada'];
$reserva[$indice]["salida"] = $_POST['salida'];
$reserva[$indice]["propiedad"] = $_POST['propiedad'];
if (isset($_POST['enviar'])){
header("Location: prueba2.php");
}
Has hecho un debug de esa parte del codigo?, si lo haces te daras cuenta de 2 cosas.

Primero, al ingresar en la pagina por primera vez o al volver atras, hace lo siguiente.
1. Comprueba si la variable session['mi_reserva'] existe.
1.1 Si existe, carga el array session en el array reserva
1.2 Si no existe, crear el array reserva sin ningun dato

Hasta aqui todo correcto, pero....

Cita:
$indice=count($reserva)+1;

$reserva[$indice]["percentage"] = $_POST['percentage'];
$reserva[$indice]["llegada"] = $_POST['llegada'];
$reserva[$indice]["salida"] = $_POST['salida'];
$reserva[$indice]["propiedad"] = $_POST['propiedad'];
if (isset($_POST['enviar'])){
header("Location: prueba2.php");
}
Al llegar a este punto pasa lo siguiente

2. Crear o modifica el array reserva con los parametros recogido en los post. !!!!Atencion, Que si vuelves atras, desde otra pagina, se creara un nuevo indice.

Creo, y no me equivoco, no te has hecho un diseño de tu codigo antes de codificarlo verdad?.
Consejo: Siempre, Siempre, haz el diseño de tu aplicacion/script antes de programarlo, te daras cuenta de lo que necesitas, ya que es mas facil pensar en la funcionalidad sin programar.

Deberias hacer esto:


Código PHP:
Ver original
  1. if (isset($_POST['enviar'])){
  2. $indice=count($reserva)+1;
  3.  
  4. $reserva[$indice]["percentage"] = $_POST['percentage'];
  5. $reserva[$indice]["llegada"] = $_POST['llegada'];
  6. $reserva[$indice]["salida"] = $_POST['salida'];
  7. $reserva[$indice]["propiedad"] = $_POST['propiedad'];
  8. header("Location: prueba2.php");
  9.  }

Creo que asi no te dara errores.

De todos modos, te falta el diseño de tu script, coje un papel y mediante dibujos y texto, hazte un boceto de como debe funcionar el script, basico, luego le vas poniendo los detalles mas significativos.

Si no conoces UML, te aconsejo que le heches un vistazo, es una forma de diseñar scripts y programas, que aunque tardes un poco mas, te aseguro que a la larga, hace que la programacion sea mas simple y sencilla.