Foros del Web » Programando para Internet » PHP »

Problema al guardar objeto COM en variable de sesión

Estas en el tema de Problema al guardar objeto COM en variable de sesión en el foro de PHP en Foros del Web. He estado leyendo mucho sobre guardar objetos en variables de sesión ($_SESSION) para poder usarlos en otras páginas del mismo sitio. Mi problema es al ...
  #1 (permalink)  
Antiguo 13/10/2010, 17:22
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Problema al guardar objeto COM en variable de sesión

He estado leyendo mucho sobre guardar objetos en variables de sesión ($_SESSION) para poder usarlos en otras páginas del mismo sitio.
Mi problema es al intentar guardar un objeto COM en la sesión: si accedo a la variable $_SESSION dentro de la misma página donde le he asignado el objeto no tengo problemas, pero desde otra página no puedo acceder a sus propiedades.
He probado a usar las funciones serialize y unserialize y nada, tampoco me funciona.

Agradecería mucho que alguien me echara una mano con esto.


Saludos.
  #2 (permalink)  
Antiguo 13/10/2010, 23:13
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Problema al guardar objeto COM en variable de sesión

y para acceder a esas variables inicias la sesión??

es decir, al principio (ojo! siempre debe ser la primera línea de tu página) debes poner session_start(); con eso invocas tu sesión, y ahora si puedes usar todas tus variables.. imagino que eso puede ser algo que te falte..

saludos ^^
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #3 (permalink)  
Antiguo 14/10/2010, 01:13
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problema al guardar objeto COM en variable de sesión

Sí claro, en todas las páginas he puesto session_start(), es más, no tengo ningun problema para acceder a strings guardados en variables de sesión desde otras páginas, solo a estos objetos COM.
  #4 (permalink)  
Antiguo 14/10/2010, 10:52
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Problema al guardar objeto COM en variable de sesión

ammm, será posible que traigas un poco de código para ver como lo tienes? y ver si algo en como lo manejas andar mal??

saludos!
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)
  #5 (permalink)  
Antiguo 14/10/2010, 16:17
 
Fecha de Ingreso: octubre-2010
Mensajes: 3
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Problema al guardar objeto COM en variable de sesión

Pues en un primer archivo (funciones.php) tengo:

Código:
session_start();

....

try{
            $appD = new COM("ASDat.CASDataApp");
            $appD->InitMasterData(true, 1, 91);
            $appD->DateMask="ymd";
            //appD.UseCrypt=true
            $_readDB = $appD->IniciarApp(readDB());
	}catch(Exception $e){
            $_SESSION['errorDesc'] = 'No se pudo iniciar la conexión: ' . htmlentities($e->getMessage());
            header("Location: " . "../index.php");
            exit;
	}

....

$coll->filter="LOGIN LIKE '" . $_POST['user'] . "'";
	$coll->StartBrowse;
	if ($coll->currentitem){
		$obj = $coll->currentitem;
		if($obj){
			if ($obj["PWD"] == (string)$_POST['cl']){
				$_SESSION['user'] = $obj;
				
				try{					
					$appData->LoadEnterprise((string)$obj["IDEMPRESA"]);
					if($appData->CurrentEnterprise)
						$appData->CurrentEnterprise['MAP_IDCURRENTUSER'] = $obj['ID'];
					
					$_SESSION['userName'] = ucwords($_POST['user']);
					header('Location: prueba.php');
					exit;
					
				}catch(Exception $e){
					$_SESSION['errorDesc'] = 'Error inicializando empresa: ' . htmlentities($e->getMessage());
					header("Location: " . "../index.php");
					exit;
				}
			}
		}
	}

....
Y en otro segundo archivo, al que llego con la instrucción (header('Location: prueba.php');) tengo:

Código:
session_start();
$objUser = $_SESSION['user'];
echo 'Nombre Completo: ' . $objUser['NOMBRE'];
echo 'Nombre Usuario: ' . $_SESSION['userName'];

Si accedo a las variables de sesión desde el primer archivo, tanto $_SESSION['user'] (objeto COM) como $_SESSION['userName'] (string), me devuelven valores correctamente, pero si accedo a ellas desde el segundo archivo, solo $_SESSION['userName'] me devuelve el valor correcto, con el objeto guardado en $_SESSION['user'] me da error (no puedo acceder ni a sus propiedades ni a sus métodos), sin embargo la función isset($_SESSION['user']) me devuelve true (la variable no está vacía).
  #6 (permalink)  
Antiguo 15/10/2010, 12:15
Avatar de silvanha  
Fecha de Ingreso: marzo-2006
Ubicación: En mi mundo de sueños
Mensajes: 653
Antigüedad: 18 años, 1 mes
Puntos: 65
Respuesta: Problema al guardar objeto COM en variable de sesión

Ammm se me ocurre, que uses el Objeto COM, pero como objeto como tal.. es decir.. algo como

Código PHP:
Ver original
  1. $_SESSION["user"] -> Nombre

porque en teoría estas manejando un objeto.. no estoy del todo segura, necesitarias probar.. el caso es no perder la idea del tipo de datos que estas manejando..

saludos! =) y suerte!!! sorry por no ser de más ayuda..
__________________
●•· No hay nada imposible..
●•· Vico-X.. ;)

Etiquetas: objeto, sesión, 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 08:26.