Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] variables de sesion en array

Estas en el tema de variables de sesion en array en el foro de PHP en Foros del Web. Hola, No sé si es bueno pasar varias variables de sesion o deben de guardarse en un array. Estoy probando esto que encontré y supuestamente ...
  #1 (permalink)  
Antiguo 10/01/2014, 04:05
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
variables de sesion en array

Hola,
No sé si es bueno pasar varias variables de sesion o deben de guardarse en un array.

Estoy probando esto que encontré y supuestamente debe de funcionar pero no lo hace asi que algo está mal.

Pagina 1 envia con un formulario que reenvia con un header:
Código PHP:
<?php
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");
 }
   
?>
   <form id='myForm' action="<?php echo $_SERVER['SCRIPT_NAME'];?>"  method="post">
              <p><input name="percentage" type="text" size="30"><span class="red"> *</span></p>
            <p><input name="llegada" type="text" size="30"></p>
            <p><input name="salida"  type="text" size="30"<span class="red"> *</span></p>
            <p><input name="propiedad" size="30" type="text"<span class="red"> *</span></p>        
            <p><input type="submit" name="enviar" value="Submit" id="submit" class="boton roundedcorner border"></p>
          </form>
Pagina 2 que imprime:
Código PHP:
<?php
session_start
();
if (isset(
$_SESSION['mi_reserva'])){ 
   
$reserva=$_SESSION['mi_reserva']; 
} else { 
   
$reserva=array(); 


for (
$x=0$x<count ($reserva); $x++){
   echo 
"Producto en carro n°: ".$x."<br>";
   echo 
"Propiedad: ".$reserva[$x]['propiedad']."<br>";
echo 
"Porcentaje: ".$reserva[$x]['percentage']."<br>";
   echo 
"Llegada: ".$reserva[$x]['llegada']."<br>";
   echo 
"Salida: ".$reserva[$x]['salida']."<br><br>";
}
?>
  #2 (permalink)  
Antiguo 10/01/2014, 04:17
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: variables de sesion en array

Código PHP:
Ver original
  1. if (isset($_SESSION['mi_reserva'])){
  2.    $reserva=$_SESSION['mi_reserva'];
  3. } else {
  4.    $reserva=array();
  5. }
Si $_SESSION['mi_reserva'] no existe, creas un array....que nunca metes en la sesion.
  #3 (permalink)  
Antiguo 10/01/2014, 04:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: variables de sesion en array

Cita:
Iniciado por dashtrash Ver Mensaje
Código PHP:
Ver original
  1. if (isset($_SESSION['mi_reserva'])){
  2.    $reserva=$_SESSION['mi_reserva'];
  3. } else {
  4.    $reserva=array();
  5. }
Si $_SESSION['mi_reserva'] no existe, creas un array....que nunca metes en la sesion.
Si tambien lo vi raro, y he probado declarlo y nada, no sé.
Es realemente necesario meter las variables en un array?
Es malo pasar muchas variables sin un array?

No uso mucho php en la web, uso mas las funciones de mysql, y array es algo que no he usado nunca.

Este es el tipo de array que debo de usar si despues en la proxima página voy a añadir algunos variables más?

Gracias
  #4 (permalink)  
Antiguo 10/01/2014, 05:45
 
Fecha de Ingreso: enero-2014
Mensajes: 75
Antigüedad: 10 años, 3 meses
Puntos: 11
Respuesta: variables de sesion en array

Hola helen.

Empecemos por el principio, la variable $_SESSION, se debe modificar unica y exclusivamente en un solo archivo por ejemplo que sea al loguearse o desloguearse. Si la variable $_SESSION la modificar en varias webs, al final puedes encontrarte con errores.

Por otro lado

Cita:
$reserva=array();
Con esto no estas haciendo nada, tan solo creas un array en blanco que no le das funcionalidad.

Para orientarte mejor, que es lo que quieres hacer exactamente?

Saludos.
  #5 (permalink)  
Antiguo 10/01/2014, 06:13
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: variables de sesion en array

Cita:
Iniciado por razierplus2 Ver Mensaje
Hola helen.

Para orientarte mejor, que es lo que quieres hacer exactamente?

Saludos.
Necesito crear una sesion en pagina 1 con 4 variables recogidos en un formulario con post, ir con header a pagina 2 y alli guardaré algunas variables más, ir a pagina 3 con las variables de pagina 1+2

Al principio solo declaraba una variable asi, me bastaba:
$_SESSION['id']=$id;
despues me hacia faltan más valores, y en otra pagina declaraba dos más:
$_SESSION['llegada']=$llegada2;
$_SESSION['salida']=$salida2;
y en una tercera pagina llamaba a los 3 y funciona.

Y ahora estoy cambiando la estructura según recomendaciones en este post:
http://www.forosdelweb.com/f18/sesio...4/#post4551513
al seguir esa recomendación
pues ya necesito pasar aún más variables de página a página.
  #6 (permalink)  
Antiguo 10/01/2014, 06:52
 
Fecha de Ingreso: enero-2014
Mensajes: 75
Antigüedad: 10 años, 3 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.
  #7 (permalink)  
Antiguo 10/01/2014, 07:01
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: variables de sesion en array

Cita:
Iniciado por razierplus2 Ver Mensaje
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.
No sé lo que es un diseño de script.
Las paginas ya existen y estan funciondo bien sin sesiones.
Lo que pasa es que a veces pasa que hacen la reserva, pero en paypal no pueden pagar, y despues intentan hacerlo de nuevo y pagar, pero la reserva ya esta hecho y tarda de 30-45 minutos de ser eliminado con un cronjob.
Y claro nos llaman preocupados.
Y por eso estoy intentando hacer lo mismo pero con sessiones para que en caso de dar a boton atrás, o volver a esas paginas la reserva se elimine por no estar pagado sin que se den cuenta.
Ahora lo mira a ver.
Gracias.
  #8 (permalink)  
Antiguo 10/01/2014, 07:20
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: variables de sesion en array

Cita:
Iniciado por razierplus2 Ver Mensaje
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.
Sigue sin funcionar,
no será por lo que dice dashtrash?
Que la session no está declarado.
"Si $_SESSION['mi_reserva'] no existe, creas un array....que nunca metes en la sesion."
  #9 (permalink)  
Antiguo 10/01/2014, 07:33
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: variables de sesion en array

Código PHP:
<?php
session_start
();
if (isset(
$_SESSION['mi_reserva'])){ 
   
$indice=count($_SESSION['mi_reserva'])+1;

else{
  
$indice 1;
}


if (isset(
$_POST['enviar'])){
 

  
$reserva[$indice]["percentage"] = $_POST['percentage'];
  
$reserva[$indice]["llegada"] = $_POST['llegada'];
  
$reserva[$indice]["salida"] = $_POST['salida']; 
  
$reserva[$indice]["propiedad"] = $_POST['propiedad']; 
  
$_SESSION['mi_reserva'] = $reserva;
  
header("Location: prueba2.php");
 }
   
?>
  #10 (permalink)  
Antiguo 10/01/2014, 07:35
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: variables de sesion en array

En tu código sólo estás COMPROBANDO y OBTENIENDO de $_SESSION, no hay ni una línea de ASIGNACION a $_SESSION...

Después de la línea
Código PHP:
Ver original
  1. $reserva[$indice]["propiedad"] = $_POST['propiedad'];
mete
Código PHP:
Ver original
  1. $_SESSION["mi_reserva"]=$reserva;
  #11 (permalink)  
Antiguo 10/01/2014, 07:41
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: variables de sesion en array

Código PHP:
if (isset($_SESSION['mi_reserva'])){ 
   
$reserva=$_SESSION['mi_reserva']; 
   echo 
"Cantidad de Reservas : ".count ($reserva);

   for (
$x=0$x<count ($reserva); $x++){
      echo 
"<hr>";
      echo 
"Producto en carro n°: ".$x."<br>";
      echo 
"Propiedad: ".$reserva[$x]['propiedad']."<br>";
      echo 
"Porcentaje: ".$reserva[$x]['percentage']."<br>";
      echo 
"Llegada: ".$reserva[$x]['llegada']."<br>";
      echo 
"Salida: ".$reserva[$x]['salida']."<br><br>";
   }
} else { 
   echo 
"No hay reservas"

  #12 (permalink)  
Antiguo 10/01/2014, 07:47
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: variables de sesion en array

Cita:
Iniciado por dashtrash Ver Mensaje
En tu código sólo estás COMPROBANDO y OBTENIENDO de $_SESSION, no hay ni una línea de ASIGNACION a $_SESSION...

Después de la línea
Código PHP:
Ver original
  1. $reserva[$indice]["propiedad"] = $_POST['propiedad'];
mete
Código PHP:
Ver original
  1. $_SESSION["mi_reserva"]=$reserva;
Gracias,
eso ya probé antes y no iba, pero ahora con el cambio de ubicación con el if isset enviar, funciona.
Gracias,
y para añadir variables en proxima pagina debo de poner el array otra vez y añadir los nuevos a los de antes?
  #13 (permalink)  
Antiguo 10/01/2014, 07:47
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: variables de sesion en array

Cita:
Iniciado por luis010182 Ver Mensaje
Código PHP:
<?php
session_start
();
if (isset(
$_SESSION['mi_reserva'])){ 
   
$indice=count($_SESSION['mi_reserva'])+1;

else{
  
$indice 1;
}

if (isset(
$_POST['enviar'])){
 

  
$reserva[$indice]["percentage"] = $_POST['percentage'];
  
$reserva[$indice]["llegada"] = $_POST['llegada'];
  
$reserva[$indice]["salida"] = $_POST['salida']; 
  
$reserva[$indice]["propiedad"] = $_POST['propiedad']; 
  
$_SESSION['mi_reserva'] = $reserva;
  
header("Location: prueba2.php");
 }
   
?>
Me falto una linea para no perder las reservas anteriores.
Código PHP:
session_start();
if (isset(
$_SESSION['mi_reserva'])){ 
   
$reserva $_SESSION['mi_reserva'];
   
$indice=count($reserva)+1;

else{
  
$indice 0# era cero

  #14 (permalink)  
Antiguo 10/01/2014, 09:07
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: variables de sesion en array

Cita:
Iniciado por razierplus2 Ver Mensaje
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.  }
Faltaba declarar la sesion:
Código PHP:
if (isset($_POST['enviar'])){
$indice=count($reserva)+1;

$reserva[$indice]["percentage"] = $_POST['percentage'];
$reserva[$indice]["llegada"] = $_POST['llegada'];
$reserva[$indice]["salida"] = $_POST['salida']; 
$reserva[$indice]["propiedad"] = $_POST['propiedad']; 
$_SESSION["mi_reserva"]=$reserva;
header("Location: prueba2.php");
 } 

Pero al imprimirlo me da un restultado vacio y otro con lo que he puesto en el formulario.
Algo no está bien:
Producto en carro n°: 0
Propiedad:
Porcentaje:
Llegada:
Salida:

Producto en carro n°: 1
Propiedad: s
Porcentaje: d
Llegada: x
Salida: we
  #15 (permalink)  
Antiguo 10/01/2014, 09:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: variables de sesion en array

Cita:
Iniciado por luis010182 Ver Mensaje
Me falto una linea para no perder las reservas anteriores.
Gracias pero no te entiendo, no hay reservas anteriores, ya que las reservas son únicas.
  #16 (permalink)  
Antiguo 10/01/2014, 09:16
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: variables de sesion en array

puf, lo he probado otra vez, y esta vez me ha dado 3 resultados....
Producto en carro n°: 0
Propiedad:
Porcentaje:
Llegada:
Salida:

Producto en carro n°: 1
Propiedad: s
Porcentaje: d
Llegada: x
Salida: we

Producto en carro n°: 2
Propiedad: 2
Porcentaje: d
Llegada: 3
Salida: s
entonces he borrado las cookies de las sessiones en el navegador y no sale ni la pagina.
Despues miraré más que ya me da vueltas la cabeza
  #17 (permalink)  
Antiguo 10/01/2014, 10:35
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: variables de sesion en array

Cita:
Iniciado por helenp Ver Mensaje
Gracias pero no te entiendo, no hay reservas anteriores, ya que las reservas son únicas.
Por lo que vi que hace el codigo, es guardar X cantidad de reservas en session.
Vos cargas de a una cada ves que haces el envio del form.
  #18 (permalink)  
Antiguo 10/01/2014, 10:36
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: variables de sesion en array

Cita:
Iniciado por helenp Ver Mensaje
puf, lo he probado otra vez, y esta vez me ha dado 3 resultados....
Producto en carro n°: 0
Propiedad:
Porcentaje:
Llegada:
Salida:

Producto en carro n°: 1
Propiedad: s
Porcentaje: d
Llegada: x
Salida: we

Producto en carro n°: 2
Propiedad: 2
Porcentaje: d
Llegada: 3
Salida: s
entonces he borrado las cookies de las sessiones en el navegador y no sale ni la pagina.
Despues miraré más que ya me da vueltas la cabeza

Que te muestrar cuando haces:
Código PHP:
echo "<pre>";
print_r($_SESSION['mi_reserva']);
echo 
"</pre>"

Última edición por luis010182; 10/01/2014 a las 10:53
  #19 (permalink)  
Antiguo 10/01/2014, 12:18
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: variables de sesion en array

Cita:
Iniciado por luis010182 Ver Mensaje
Me falto una linea para no perder las reservas anteriores.
Gracias pero no te entiendo, no hay reservas anteriores, ya que las reservas son únicas.

Puf, no sé, ya he cambiado muchas cosas, he quitado if isset etc,
estaba mal de {
en fin

ahora tengo en pagina 1:
Código PHP:
<?php
session_start
();
if (isset(
$_POST['enviar'])){
$indice=count($reserva)+1;
$reserva[$indice]["percentage"] = $_POST['percentage'];
$reserva[$indice]["llegada"] = $_POST['llegada'];
$reserva[$indice]["salida"] = $_POST['salida']; 
$reserva[$indice]["propiedad"] = $_POST['propiedad']; 
$_SESSION["mi_reserva"]=$reserva;
header("Location: prueba2.php");
 }  
     else {
   
?>
   <form id='myForm' action="<?php echo $_SERVER['SCRIPT_NAME'];?>"  method="post">
              <p><input name="percentage" type="text" size="30"></p>
            <p><input name="llegada" type="text" size="30"></p>
            <p><input name="salida"  type="text" size="30"></p>
            <p><input name="propiedad" size="30" type="text"></p>        
            <input type="submit" name="enviar" value="Submit" id="submit" class="boton roundedcorner border"></p>
          </form>
          <?php
     
}
     
?>
y en pagina 2:
Código PHP:
<?php
session_start
();
 echo 
"<pre>";
print_r($_SESSION['mi_reserva']);
echo 
"</pre>";  
   
$reserva=$_SESSION["mi_reserva"]; 
for (
$x=0$x<count ($reserva); $x++){
   echo 
"Producto en carro n°: ".$x."<br>";
   echo 
"Propiedad: ".$reserva[$x]['propiedad']."<br>";
echo 
"Porcentaje: ".$reserva[$x]['percentage']."<br>";
   echo 
"Llegada: ".$reserva[$x]['llegada']."<br>";
   echo 
"Salida: ".$reserva[$x]['salida']."<br><br>";

?>
Imrpime perfectamente el print_r que has puesto y al actualizar la pagina o ir atras y enviar de nuevo, coge el valor nuevo. Hasta alli bien,
pero no imprime nada en los echos del array.
  #20 (permalink)  
Antiguo 10/01/2014, 12:30
Avatar de luis010182  
Fecha de Ingreso: julio-2009
Ubicación: Argentina - Capital Federal
Mensajes: 382
Antigüedad: 14 años, 10 meses
Puntos: 27
Respuesta: variables de sesion en array

Queria ver que imprime el array, para ver si hay algun error el el for.

Igual cambia el for por foreach

Código PHP:

session_start
();
$reservas=$_SESSION["mi_reserva"]; 
$x 1;
foreach (
$reservas as $reserva){
   echo 
"Producto en carro n°: ".$x."<br>";
   echo 
"Propiedad: ".$reserva['propiedad']."<br>";
   echo 
"Porcentaje: ".$reserva['percentage']."<br>";
   echo 
"Llegada: ".$reserva['llegada']."<br>";
   echo 
"Salida: ".$reserva['salida']."<br><br>";
   
$x $x+1;

  #21 (permalink)  
Antiguo 10/01/2014, 13:30
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: variables de sesion en array

Cita:
Iniciado por luis010182 Ver Mensaje
Queria ver que imprime el array, para ver si hay algun error el el for.

Igual cambia el for por foreach

Código PHP:

session_start
();
$reservas=$_SESSION["mi_reserva"]; 
$x 1;
foreach (
$reservas as $reserva){
   echo 
"Producto en carro n°: ".$x."<br>";
   echo 
"Propiedad: ".$reserva['propiedad']."<br>";
   echo 
"Porcentaje: ".$reserva['percentage']."<br>";
   echo 
"Llegada: ".$reserva['llegada']."<br>";
   echo 
"Salida: ".$reserva['salida']."<br><br>";
   
$x $x+1;

Ahora si funcion
Muchas gracias
  #22 (permalink)  
Antiguo 11/01/2014, 04:20
 
Fecha de Ingreso: mayo-2009
Mensajes: 382
Antigüedad: 15 años
Puntos: 6
Respuesta: variables de sesion en array

Estoy en la proxima página donde hay más variables que pasar y ahora mi duda es,
¿deberia de haber declarado las variables del principio pero con un valor cualquier, o debo de añadir más variables y si los añado al mismo array o a uno nuevo?

He probado a hacer esto y imprime correctamente todas las variables:
Pagina 1 crea el primer array en la sesion:
Código PHP:
$indice=count($reserva)+1;
$reserva[$indice]["propiedad"] = $_POST['propiedad']; 
$reserva[$indice]["percentage"] = $_POST['percentage'];
$reserva[$indice]["llegada"] = $llegada;
$reserva[$indice]["salida"] = $salida
$reserva[$indice]["arrival_display"] = $arrival_display
$reserva[$indice]["departure_display"] = $departure_display
$_SESSION["mi_reserva"]=$reserva
Pagina 2, coge los valores del array de pagina 1 y crea otro array en la misma sesion:
Código PHP:
if (isset($_SESSION['mi_reserva'])){ 
$reservas=$_SESSION["mi_reserva"]; 
$x 1;
//sacamos las variables de la sesion
foreach ($reservas as $reserva){
    
$propiedad=$reserva['propiedad'];
    
$percentage=$reserva['percentage'];
    
$llegada=$reserva['llegada'];
    
$salida=$reserva['salida'];
    
$arrival_display=$reserva['arrival_display'];
    
$departure_display=$reserva['departure_display'];
   
$x $x+1;
}
}
if (isset(
$_POST['enviar'])or ($_POST['enviar2']) or ($_POST['enviar3'])){
    
$indice2=count($reserva)+1;
    
$reserva[$indice2]["half_round"] = $_POST['half_round']; 
$reserva[$indice2]["paynow"] = $_POST['paynow'];
$reserva[$indice2]["balance"] = $_POST['balance'];
$reserva[$indice2]["whenpayment"] = $_POST['whenpayment'];
$_SESSION["mi_reserva"]=$reserva;
     
header("Location: bookinginstantcontinue2.php");
}
else { 
página 3 aún no está listo pero imprime correctamente esto:
Array
(
[propiedad] => Casa_Test
[percentage] => 50
[llegada] => 2014-01-01
[salida] => 2014-01-08
[arrival_display] => 1 January 2014
[departure_display] => 8 January 2014
[7] => Array
(
[half_round] => 14.5
[paynow] => 7.25
[balance] => 7.25
[whenpayment] => on arrival
)

)
Es correcto este procedimiento?

Gracias por todo

pd. me ha vuelto a pasar,
hay alguna manera para quitar lo de que el post está solucionado?

Última edición por helenp; 11/01/2014 a las 04:59

Etiquetas: formulario, variable, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:20.