PHP - Pierde valor de array en variable de sesion

   
Vista:

Pierde valor de array en variable de sesion

Publicado por Xavi (2 intervenciones) el 28/07/2016 20:05:11
Hola a todos,

Tengo un problema al intentar pasar el contenido de una array al cambiar de pagina, aunque está en una variable de sesion, al imprimir el contenido del array solo imprime la primera linea del array, en cambio si lo hago en la misma pagina funciona correctamente.

Aqui hago la consulta para pasar los datos al array para que se puedan modificar y volver a guardar:

1
2
3
4
5
6
7
if (..){
 
$carrom[md5($id)]=array('identificador'=>md5($id),
'cantidad'=>$cantidad,'producto'=>$row['Prod'],'codproducto'=>$row['Codigo'], 'comentario'=>$row['Coment'],
'stock'=>$row['Stock'],  'Sumaprod'=>$sumaprod, 'precio'=>$row['Precio'],'IdProd'=>$id,'sc'=>"sc".$ID);
 
}

Guardo en la variable de sesion:

$_SESSION['carrom']=$carrom;

y lo redirecciono a la pagina donde muestra el contenido:

header("Location:pedidomodificado2.php?".SID);

y para listar el contenido del array:

1
2
3
foreach($carrom as $k => $v){
..
}

Esto nos funcionaba hasta hace unos días, pero creemos que el hosting ha actualizado la version de php o alguna otra cosa y ha dejado de funcionar, ahora solo muestra uno de los elementos del array al pasarlo a la variable de sesion.
En cada pagina ponemos session_start(), otra de las cosas que hemos tenido que corregir es la recogida de variables que envia por get desde un formulario, que ahora tenemos que hacerlo con $_request y hasta ahora no hacía falta, el codigo de esta pagina ya se hizo hace tiempo y no se había tocado apenas como podeis imaginar..

Alguien sabe si deberiamos cambiar algun dato o añadir en la cabecera de las paginas algo para que volviera a funcionar con normalidad

Gracias por adelantado a todos,
un saludo,
Xavi
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 kip

Pierde valor de array en variable de sesion

Publicado por kip (566 intervenciones) el 28/07/2016 20:53:47
Hola, si guardas el array en la variable $_SESSION, porque en el foreach haces la iteracion en $carrom ? Creo que deberias hacerlo en la variable $_SESSION que contiene a tu array previamente almacenado, no?

1
2
3
foreach($_SESSION['carrom'] as $k => $v){
..
}

Con respecto a lo mencionado con el uso de $_GET, podrias mencionarnos a que version de PHP actualizaron? y que version usaban antes?

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

Pierde valor de array en variable de sesion

Publicado por Xavi (2 intervenciones) el 29/07/2016 13:08:16
Gracias por tu respuesta,

Antes de recorrer el array lo vuelvo a pasar a la variable $carrom, por eso hago el foreach en $carrom, crees que si lo hiciera directamente en la variable de sesion sin pasarlo a una variable funcionaria el bucle?

En cuanto a la versión php que han instalado en la 5.6 y antes no recuerdo cual teniamos ya que como comentaba hace tiempo que lo tenemos ahi alojado y no llevaba yo el tema.

Para actualizar la pagina, crees que sería mejor utilizar ya una tienda ya creada tipo prestashop o asi o mejor buscar un codigo php y modificarlo ??

Gracias por la ayuda y un saludo,
Xavi
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 kip

Pierde valor de array en variable de sesion

Publicado por kip (566 intervenciones) el 29/07/2016 13:49:44
No, deberia funcionarte como lo haces al pasarlo a otra variable, podrias colocar como haces ese cambio?

Ademas de eso, si te fijas al momento de crear la variable $carrom creas un array bidimensional, es decir que creas un indice cuyo valor sera otro array y no creo que que un solo foreach te ayude a recorrerlo de esa forma, intenta de esa forma:

1
2
3
4
5
foreach($carrom as $k => $v){
	foreach ($v as $kk => $vv) { //volvemos a hacer otro foreach dentr del valor que es un array
		echo $vv;
	}
}

Yo he trabajado en PHP 5.6 y no he tenido problemas con las variables $_GET o $_POST, podrias colocar que estas haciendo paraver especificamente lo que te da problemas?
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