Foros del Web » Programando para Internet » PHP »

Arreglo en sessiones

Estas en el tema de Arreglo en sessiones en el foro de PHP en Foros del Web. Hola : como pasar un arreglo a una session?...
  #1 (permalink)  
Antiguo 12/02/2003, 17:30
 
Fecha de Ingreso: noviembre-2002
Mensajes: 54
Antigüedad: 15 años
Puntos: 0
Arreglo en sessiones

Hola :

como pasar un arreglo a una session?
  #2 (permalink)  
Antiguo 12/02/2003, 17:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienes que serializar tu array (arreglo, matriz) ...

y a su vez des-serializarlo cuando leas de la sesion el array ..

Pero, si usas para registrar tus variables de session: session_register() .. PHP las serializa automaticamente ..

Si usas el array superglobal para manejar las variables de la sesion debes hacer:

Para registrarla en la sesion:
$_SESSION['tu_array']=serialize($tu_array);

y para leerla:
$tu_array=unserialize($_SESSION['tu_array']);

Un saludo,
  #3 (permalink)  
Antiguo 12/02/2003, 18:23
 
Fecha de Ingreso: noviembre-2002
Mensajes: 54
Antigüedad: 15 años
Puntos: 0
Gracias,

Pero independientemente de esto pierdo el arreglo cuando paso a otras paginas
  #4 (permalink)  
Antiguo 12/02/2003, 18:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No estaras propagando bien el SID .. ?

Un saludo,
  #5 (permalink)  
Antiguo 12/02/2003, 18:55
 
Fecha de Ingreso: noviembre-2002
Mensajes: 54
Antigüedad: 15 años
Puntos: 0
bueno:

en la primera pagina
session_start();
session_name("name");

session_register("temp");
$_SESSION[temp'] = "";

en las otras paginas:

session_start();
session_register("temp");
$TempVar=$_SESSION[temp'];

En este caso estoy manejando cadenas

Gracias por su ayuda
  #6 (permalink)  
Antiguo 13/02/2003, 07:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Estas usando de forma incorrecta el session_name()

Si quieres usar un nombre de sesion personalizado .. el session_name() se ha de indicar antes de tu session_start() .. y a su vez en todasss las páginas que uses sessiones hay q indicar que nombre de session estas usando o vas a usar.

Luego .. si usas session_register() NO debes usar $_SESSION['variable']=valor para reistrarla la variable de sesion .. el array superglobal $_SESSION lo hace por si solo.

En tu caso .. usando el nombre de sesion personalizado sería:

registra_variable_sesion.php
Código PHP:
<?
session_name
("elnombrequeledes");
session_start();
$variable="valor";
$_SESSION['tmp']=$variable;
?>
cualquier_otra_pagina.php
Código PHP:
<?
session_name
("elnombrequeledes");
session_start();
$variable=$_SESSION['tmp'];
echo 
"El valor de la variable de sesion tmp es".$variable;
?>
Y por supuesto .. entre la pagina q registres el valor de la variable y las siguientes .. el "salto" a ellas ha de ser via un link, un formulario .. o cualquier otro médio . NO un acceso directo a las siguientes paginas .. sino, perderas el SID (identificador Unico de sesion) .. Usar el array $_SESSION solo está disponible desde PHP 4.1.x en adelante.

Y sobre todo ten en cuenta que el SID se propaga de dos formas: Automático y manual .. Revisa el manual de PHP tema sessiones o las FAQ's de este foro (mira el indice).

Un saludo,
  #7 (permalink)  
Antiguo 13/02/2003, 10:17
 
Fecha de Ingreso: noviembre-2002
Mensajes: 54
Antigüedad: 15 años
Puntos: 0
Hola he probado todas las formas posibles pero a veces me sigue dando este error.

Notice: Undefined variable: Muros_Selected in .....

Muros_Selected es el nombre de la variable de sessoen

Te agradeceria que me ayudaras
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:38.