PHP - Enviar y recibir Array por $_SESSION

 
Vista:
sin imagen de perfil

Enviar y recibir Array por $_SESSION

Publicado por Victor (195 intervenciones) el 08/01/2015 13:10:36
Buenas tardes gente.

Tengo un problema que lleva tiempo sin solucion.
Por una parte monto un array con datos y "intento" pasarselo a la otra pagina mediante una variable de session tal que así:
1
2
3
4
5
6
7
8
9
10
11
12
13
echo "<br>query vale=>".$query;
    while($fila=$consulta->fetch_array())
    {
        $siloVacio['silo']['codSilo'] =$fila['codSilo'];
        $siloVacio['silo']['salaSilo'] =$fila['salaSilo'];
        $siloVacio['silo']['entrada'] =$fila['entrada'];
        $siloVacio['silo']['salida'] =$fila['salida'];
        $siloVacio['silo']['fchEntrada'] =$fila['fchEntrada'];
        $siloVacio['silo']['fchSalida'] =$fila['fchSalida'];
        $silos[]=$siloVacio['silo'];
    }
$_SESSION['silos']=$silos;
header ("Location:movSilos.php?valor=".$codSilo."&sala=".$salaSilo."");

Y en la pagina destino trato de recojer dichos datos de esta forma:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if(!session_start())
{
    echo"<br>No hay sesion";
    session_start();
}
 
$movSilo=array();
$sala=$_GET['sala'];
$silo=$_GET['valor'];
$movSilo=$_SESSION['silos'];
echo "<br>Sala vale=>".$sala;
echo "<br>Silo vale=>".$silo;
for($i=0;$i<count($movSilo);$i++)
{
    echo "<br>Vuelta $i";
    echo "<br>El contenido vale=>".$movSilo['silos'][$i]['codSilo'];
}

Hay algo mal en lo que estoy haciendo,pero el que?

ME es bastante urgente solventar dicho problema.saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Enviar y recibir Array por $_SESSION

Publicado por xve (6935 intervenciones) el 08/01/2015 20:13:33
En la pagina origen, defines el session_start() en la parte superior de la pagina, antes que ninguna otro código?

En la pagina destino, ejecutas dos veces el session_start()... el que tienes dentro del if() lo puedes quitar.


Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Enviar y recibir Array por $_SESSION

Publicado por Victor (195 intervenciones) el 09/01/2015 08:47:08
Buenas

No,no está a lo primero de la pagina antes de nada.
Acabo de rectificar eso.
El if ese era para preguntar si existía sesión,veo que esa no es la forma para hacerlo correctamente pero,cual es?

Comentaré como responde con los cambios sugeridos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Enviar y recibir Array por $_SESSION

Publicado por Victor (195 intervenciones) el 09/01/2015 11:19:48
Buenas acabo de hacerlo.

Por un lado he puesto en la pagina origen el session_star(); antes de nada y por otra parte he quitado el if ese que sobraba y he puesto el session_start() al principio de dicha pagina.
En la parte en la que muestro el contenido me aparece vacio(en los hecho que utlizo).
Ahora mismo está sí:

pagina origen:
while($fila=$consulta->fetch_array())
{
$siloVacio['silo']['codSilo'] =$fila['codSilo'];
$siloVacio['silo']['salaSilo'] =$fila['salaSilo'];
$siloVacio['silo']['entrada'] =$fila['entrada'];
$siloVacio['silo']['salida'] =$fila['salida'];
$siloVacio['silo']['fchEntrada'] =$fila['fchEntrada'];
$siloVacio['silo']['fchSalida'] =$fila['fchSalida'];
$silos[]=$siloVacio['silo'];
}
$_SESSION['silos']=$silos;
header ("Location:movSilos.php?valor=".$codSilo."&sala=".$salaSilo."&valores=".$_SESSION['silos']."");

pagina destino:

session_start();
$movSilo=array();
$sala=$_GET['sala'];
$silo=$_GET['valor'];
$movSilo=$_SESSION['silos'];
echo "<br>Sala vale=>".$sala;
echo "<br>Silo vale=>".$silo;
for($i=0;$i<count($movSilo);$i++)
{
echo "<br>Vuelta $i";
echo "<br>El contenido vale=>".$movSilo['silos'][$i]['codSilo'];
}
?>


Los echo de $movSilo['silos'][$i]['codSilo'] continuan apareciendome en blanco,que hago mal?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Enviar y recibir Array por $_SESSION

Publicado por david (2 intervenciones) el 09/01/2015 14:03:16
Hola,
No soy un crack de esto asi que igual no he entendido el codigo. Pero no entiendo porque pasas $_SESSION en la url si ya lo estas pasando con la coockie de session.
Creo que es redundante. Y sobra en la url porque cualquier listillo podria modificarla y aunque supongo que lo controlaras, mas vale no ponerlo facil.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Enviar y recibir Array por $_SESSION

Publicado por Victor (195 intervenciones) el 09/01/2015 12:15:26
Buenasss ya está arreglado.

El fallo estaba en el montaje y posteriormente es el recorrido de dicho array.
Me explicaré,como en el while donde monto el array no los indexo por la key "silos" sino que hago esto: $silos[]=$siloVacio['silo'];
Dificilmente puedo luego usar una marca del array que no lleva a la hora de recorrerlo por tanto lo he puesto así y si vá:
echo "<br>El contenido vale=>".$movSilo[$i]['codSilo'];

Es correcta la explicacion que doy?

Saludos y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Enviar y recibir Array por $_SESSION

Publicado por xve (6935 intervenciones) el 09/01/2015 12:19:34
Es correcto, ya que es un array multidimensional...

Gracias por comentarlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar