PHP - Pasar un objeto php por session

   
Vista:

Pasar un objeto php por session

Publicado por jose (18 intervenciones) el 29/10/2008 20:30:09
Buenas Tardes,
Necesito saber si puedo pasar objetos en una variable de session ya que lo estoy intentando y no puedo....
por ejemplo:

<? //al principio tomo las sessiones que voy a manejar
session_start(); //comienzo la session
//obtengo todo desde la SESSION
if(isset($_SESSION['usuario'], $_SESSION['contrasenia'], $_SESSION['motor']))
{
$usuario = $_SESSION["usuario"];
$contrasenia = $_SESSION["contrasenia"];
$motor = $_SESSION["motor"];
$existecone=$_SESSION["existecone"];
$conne = $_SESSION["conne"];
}
else{
header("Location: default.html");//redirecciono a default.php para volver a loguearme
}
?>

//mas adelante en el mismo script sigo con esto
if (!$existecone) //chequeosi existe o no una conexion
{
$conecta=new conectate();
$existecone = $conecta->Conectar();
$conne=$conecta->get_connection();
$_SESSION["existecone"] = True;
$_SESSION["conne"] = $conne; //aca es donde paso por session mi objeto
echo"entre una ves";
}
y estas son algunas de las funciones de mi objeto conexion.

function Conectar()
{
$this->connected = false;
//conexion a la base
$this->connection = sybase_pconnect($this->servidor,$this->user,$this->pwd);
if(!($this->connection))
{ echo ("Error de Conexion a servidor");
return 0;
}else {
//seleccionamos la base de datos
if (!(@sybase_select_db("master",$this->connection)))
{
$this->connected = true;
}
return $this->connected;
}
}//fin Conectar

function get_connection()
{
return $this->connection;
} //fin get_connection()

mi clase conexxion funciona bien, y la estableci como persistente, esto ya lo checkee.
lo que necesito saber es si lo que estoy tratando de hacer se puede o no ya que no se si puedo pasar una conexion.
desde ya muchas gracias.
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

RE:Pasar un objeto php por session

Publicado por jose (18 intervenciones) el 30/10/2008 20:09:01
ya lo resolvi! el pconnect busca una conexion persistente, si la encuentra con el usu y la pass devuelve un identifcador. sino la encuentra la crea.
asi que no es necesario que la pase por session.
osea que perece que me creo una nueva conexion cada vez que leo mi script pero esto no es asi, sino que reutilizo la q esta creada.

les dejo el codigo en el que me di cuenta, a ver si a alguien le sirve y tenga el mismo problema trabajndo con objeto conexion.

if (!$existecone)//chequeosi existe o no una conexion
{
$conecta=new conectate();
$existecone = $conecta->Conectar();
$conne=$conecta->get_connection();

$_SESSION["existecone"] = True;
$_SESSION["conne"] = $conne;
echo"entre una ves";
}else{
$conecta=new conectate();
$existecone = $conecta->Conectar();
$conne=$conecta->get_connection();//devuelve el identificador de la conexion peresistente
}

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

RE:Pasar un objeto php por session

Publicado por JUAN PABLO (1 intervención) el 27/11/2008 20:46:53
echale un vistazo a esto te puede servir

session_start();
session_register('sesion');
include_once('Sesion.class.php');
$_SESSION['sesion'] = serialize(new Sesion()); // La clase Sesion la pudes inicializar con los atributos que quieras.... usuario, passw, perfiles...etc.

ya en cualquier archivo.php despues de que se ejecute el script anterior puedes entar al objeto sesion asi:

session_start();
$obj_sesion = unserialize($_SESSION['sesion']);

y utilizar los atributos definidos en la clase Sesion.class.php Ej:
echo $obj_sesion->usuario;
echo $obj_sesion->activo;

***NOTA: SOLO SE PUEDE UTILIZAR LOS ATRIBUTOS DE LA CLASE NO LOS METODOS
EJ: $obj_sesion->consultarUsuario();//En estos casos no funciona;;;;;;;
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

RE:Pasar un objeto php por session

Publicado por jose (18 intervenciones) el 28/11/2008 18:53:50
gracias, es lo que taba buscando. mil grax.
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