elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Problema con variable de sesion y variable de conexion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con variable de sesion y variable de conexion  (Leído 5,227 veces)
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Problema con variable de sesion y variable de conexion
« en: 16 Marzo 2013, 00:36 am »

Buenas señores y señoras! :) Tengo una cosulta que me esta rompiendo la cabeza...

Es posible asignar una variable de tipo "Resource id#" a una variable de sesion ?

Porque no he podido hacerlo, por mas que intento, la variable "$_SESSION['Conex']" me queda vacia!

Ahora veamos un ejemplo de lo que quiero..

include("Conexion.php");
$Conexion = Conectar(); --> Donde conectar es una funcion que conecta a mysql
$_SESSION['Conex'] = $Conexion;

La function conectar() funciona, lo se..

Yo preciso la variable "$Conexion" porque hago una consulta desde una funcion y no puedo acceder a la variable de otra forma si la variable no es global...

Bueno.. desde ya, Gracias!!


En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Problema con variable de sesion y variable de conexion
« Respuesta #1 en: 16 Marzo 2013, 00:39 am »

y el session_start();  :P

http://php.net/manual/es/function.session-start.php

Saludos.


En línea

abc
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Problema con variable de sesion y variable de conexion
« Respuesta #2 en: 16 Marzo 2013, 01:24 am »

Gracias por responder Darhius! Pero eso lo tengo tambien.. la sesion funciona, porque tengo otras variables de sesion que funcionan, y otras consultas sql que tambien funcionan.. :/

Pero no me acepta la variable de conexion dentro de una variable de sesion.. :(

Estoy por enfermar con esto.. jajaja
En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Problema con variable de sesion y variable de conexion
« Respuesta #3 en: 16 Marzo 2013, 01:41 am »

Bueno,, sigo luchando con esto.. ahora intente con global $Conexion.. tampoco funciona,, tengo que configurar el php.ini para poder usar variables globales ??
En línea

s7evin

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Problema con variable de sesion y variable de conexion
« Respuesta #4 en: 18 Marzo 2013, 09:31 am »

Buenos días,

Hasta donde yo sé, no se puede guardar el ID de un recurso en una variable de sesión. Este es solo válido durante la duración del script/conexión.
Hay alternativas, centralizar cada petición en un único archivo (index, "bootstrap", etc).
Si esto no te convence... pues podrías pasar por sessión el usuario y password de la conexión (esta alternativa no me gusta mucho, personalmente).
También puedes incluir el archivo de conexión/configuración en la parte de código donde lo necesitas.

Si pudieras mostrar un poco más de código para hacernos una idea de cual es tu intención, quizá podríamos ayudarte algo mejor jeje

Un saludo!
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.840



Ver Perfil WWW
Re: Problema con variable de sesion y variable de conexion
« Respuesta #5 en: 18 Marzo 2013, 13:49 pm »

En la documentación de PHP puedes ver que los recursos (resource ID) y algunos objetos no pueden ser serializados y por tanto no se pueden guardar en sesiones. Mysql y Mysqli cumplen con eso y sus resources/objects no pueden ser guardados.

http://www.php.net/manual/es/intro.session.php

Si usas POO puedes guardar $conexion en una variable del Class y así la puedes solicitar en cualquier función(del class). Si usas scripting normal, puedes hacerla global.

Saludos
« Última modificación: 18 Marzo 2013, 13:53 pm por drvy | BSM » En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Problema con variable de sesion y variable de conexion
« Respuesta #6 en: 18 Marzo 2013, 18:38 pm »

Buenos dias! Primero que nada gracias por responder!

Les cuento como va la cosa..

La conexion la realizo en un php externo y lo incluyo en todos los otros php donde necesito la conexion de esta forma:

<?php
function Conectar()
{
   $db_host="localhost";
   $db_usuario="root";
   $db_password="";
   $db_nombre="usuarios";
   $conexion = @mysql_connect($db_host, $db_usuario, $db_password) or die(mysql_error());
   $db = @mysql_select_db($db_nombre, $conexion) or die(mysql_error());

   return $conexion;
}
?>

Bien, con eso realizo la conexion a la base de datos,, luego en el php que necesito la conexion:

<?php
session_start("Cliente");
include("Conexion.php");
$Conexion = Conectar();

function Ingresar()
{
   
   global $Conexion;
   echo "alert('$Conexion')";
   
}
?>

luego llamo a la funcion cuando la necesito..

Evidentemente este php no hace nada.. es un resumen,, el problema es que esto tampoco funciono,, al igual que poner la variable de conexion en $_SESSION,, la unica alternativa que veo es abrir una conexion en la funcion y cerrarla al terminar la funcion, entonces cada vez que la llame se crearia una nueva conexion y no daria ( en teoria ) problemas..

Gracias por responder y perdon la demora ;)
En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Problema con variable de sesion y variable de conexion
« Respuesta #7 en: 18 Marzo 2013, 18:44 pm »

En la documentación de PHP puedes ver que los recursos (resource ID) y algunos objetos no pueden ser serializados y por tanto no se pueden guardar en sesiones. Mysql y Mysqli cumplen con eso y sus resources/objects no pueden ser guardados.

http://www.php.net/manual/es/intro.session.php

Si usas POO puedes guardar $conexion en una variable del Class y así la puedes solicitar en cualquier función(del class). Si usas scripting normal, puedes hacerla global.

Saludos

Probablemente si lo que comente recien no funcione me lanze al POO como solucion al problema..
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.840



Ver Perfil WWW
Re: Problema con variable de sesion y variable de conexion
« Respuesta #8 en: 18 Marzo 2013, 18:52 pm »

Hola,

Seguro que no te funciona lo que haces en el mensaje anterior ?
Código
  1. <?php
  2. include("Conexion.php");
  3. $Conexion = Conectar();
  4.  
  5. function Ingresar()
  6. {
  7.  
  8.   global $Conexion;
  9.   echo "alert('$Conexion')";
  10.  
  11. }
  12.  
  13. Ingresar();
  14. ?>

Me devuelve: alert('Resource id #4') y me funciona perfectamente. No sera que tienes algún error en los nombres (del include) ?

Citar
Probablemente si lo que comente recien no funcione me lanze al POO como solucion al problema..
Lo que por lo menos deberias hacer es utilizar mysqli en vez de mysql. mysql ya esta marcada como obsoleta y en futuras versiones de php sera eliminada.

Saludos
En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Problema con variable de sesion y variable de conexion
« Respuesta #9 en: 19 Marzo 2013, 22:37 pm »

Gracias a todos por las respuestas, no he podido volver al proyecto aun,, en cuanto tenga un poco de tiempo lo terminare y les cuento como lo solucione..
Por ahora me quedo con el consejo de pasar a mysqli, que la verdad ni sabia que existia,, asi que tengo cosas para estudiar.. jeje

Abrazos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como imprimir el valor de una variable definida en una variable...
Scripting
nhaalclkiemr 5 5,281 Último mensaje 3 Mayo 2007, 17:58 pm
por sirdarckcat
Problema con variable
Scripting
kraszic 6 3,237 Último mensaje 2 Agosto 2008, 00:42 am
por kraszic
Error 91: Variable de tipo object o la variable de bloque with no esta estableci
Programación Visual Basic
brus_k10 2 5,738 Último mensaje 16 Junio 2009, 16:20 pm
por cassiani
my.resources.source.replace(variable, variable) Ayuda codedom
.NET (C#, VB.NET, ASP)
70N1 4 4,110 Último mensaje 19 Octubre 2011, 12:57 pm
por 70N1
Variable de Sesión
PHP
Zinc 2 1,203 Último mensaje 18 Junio 2012, 17:15 pm
por Zinc
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines