Foros del Web » Programando para Internet » PHP »

Variable de Sesion

Estas en el tema de Variable de Sesion en el foro de PHP en Foros del Web. Buenas Tengo un problema. Al ejecutar esta una sentencia obtengo este resultado: Error en => select a.* from s01Modulos_Sistema a, s02Menu_Perfil b where a.a01Consecutivo=b.a02Modulo and ...
  #1 (permalink)  
Antiguo 24/05/2005, 15:13
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 11 meses
Puntos: 0
Exclamación Variable de Sesion

Buenas

Tengo un problema. Al ejecutar esta una sentencia obtengo este resultado:

Error en => select a.* from s01Modulos_Sistema a, s02Menu_Perfil b where a.a01Consecutivo=b.a02Modulo and b.a02Perfil=Object

Donde Object es la variable de sesion que estoy tomando pero no se porque no me muestra el valor

Este es el codigo de la sentencia que estoy ejecutando:

select a.* from s01Modulos_Sistema a, s02Menu_Perfil b where a.a01Consecutivo=b.a02Modulo and b.a02Perfil=".$_SESSION["g_Session"]."

No se que pasa...me podrian ayudar!!!!

Gracias
  #2 (permalink)  
Antiguo 24/05/2005, 15:38
 
Fecha de Ingreso: mayo-2005
Mensajes: 294
Antigüedad: 18 años, 11 meses
Puntos: 0
Hola mira yo estoy haciendo una aplicacion y uso bastante esto que preguntas. YO lo unico que veo diferente son los puntos que pones al poner lo de $_SESSION, piensa que aqui no estas concatenando nada. Otra cosa que veo tambien es que tantas usas comillas dobles tanto para recoger todo el 'Object' como para acceder al valor del arrary $_SESSION.
Yo no soy una experta en esto ni mucho menos pero en tu caso lo que haria sería dos cosas:
1. $var=$_SESSION["g_Session"]; //Cone sto evitaremos conflictos de comillas
2. select a.* from s01Modulos_Sistema a, s02Menu_Perfil b where a.a01Consecutivo=b.a02Modulo and b.a02Perfil='$var';

NO se espero que te sirva de algo.Saludos!
  #3 (permalink)  
Antiguo 25/05/2005, 06:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No indicas el error "textual" que obtienes (si es que lo hay) o .. incluso que valor está tomado tus variables aplicadas a tu sentencia SQL .. pero en principio usando comillas tipo:

Código PHP:
$sql=select a.* from s01Modulos_Sistema as02Menu_Perfil b where a.a01Consecutivo=b.a02Modulo and b.a02Perfil='".$_SESSION["g_Session"].'"; 
te debería funcionar .. otra cosa es que hagas un:

echo $sql; para ratificar que valor está tomando tus variables (esa de sesión) si son los valores esperados ...

Un saludo,
  #4 (permalink)  
Antiguo 25/05/2005, 07:32
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 11 meses
Puntos: 0
Hice lo que me dijiste e imprimi la variable y me muestra es la palabra Object. No se si estoy haciendo algo mal porque deberia mostrarme es el tipo de usuario que se registra al ingresar el login y la contraseña.

$var = $_SESSION["g_Session"];
echo $var."<br>";

Lo que imprime es Object.

Por favor ayudenme en esto!!! Gracias
  #5 (permalink)  
Antiguo 25/05/2005, 07:41
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 7 meses
Puntos: 1
Te imprime Object porque esa variable es un objeto, no una variable simple. Deberás poner algo como $var->nombre o algo así, una llamada a un método o un atributo del objeto. Con echo o print sólo pueden mostrarse variables simples, tipos básicos
__________________
Mi página personal: Julián Urbano
  #6 (permalink)  
Antiguo 25/05/2005, 07:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues lo que te han dicho .. si tu gestionas un objeto .. algún método o propiedad de este será el que requieres para aplicar tu "condicional" a tu consulta SQL .. debes obtenerlo según lo hayas instanciado ($objeto->new nosecuantos() o como corresponda) y acceder a dicho método o propiedad.

(PD: para otra vez .. si pones el código completo que usas .. ubiesemos visto de donde sale tu variable de sesión o que guardas en ella, tenlo presente).

Un saludo,
  #7 (permalink)  
Antiguo 25/05/2005, 08:20
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 11 meses
Puntos: 0
La verdad me sigue saliendo la palabra Object. Les voy a colocar el codigo para que miren lo que estoy haciendo.

Esta funcion esta dentro de la clase CSession.
Código PHP:
function isSession()
    {
        return (isset(
$_SESSION["g_Session"]));
    } 
Entonces esta funcion me debe devolver la variable de sesion con la que despues hago lo siguiente.

Código PHP:
$ses = new CSession();
$ses->isSession();
$sql "select a.* from s01Modulos_Sistema a, s02Menu_Perfil b where .a01Consecutivo=b.a02Modulo and b.a02Perfil='$ses'";
$resultado = @mysql_query($sql) or die ("Error en => " $sql); 
Es ahi cuando me imprime es Object sabiendo que la funcion isSession()
me debe devolver el valor de la variable de sesion.

La verdad no entiendo que sucede. Les agradezco su ayuda.
  #8 (permalink)  
Antiguo 25/05/2005, 08:44
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 7 meses
Puntos: 1
Te vuelvo a decir lo mismo. $ses es un objeto como tú muy bien has dicho y nos enseñas. NO puedes usar esa variable como una cualquiera, ya que no lo es. al poner b.a02Perfil='$ses' NO te va a devolver nada válido, te pondrá Object como te viene pasando. Debes de tener un atributo o un método en la clase CSession que te sirva para esto, pero no el objeto en sí. Quizá sea el nombre del usuario de esa sesión, un identificador o lo que sea, pero no el objeto mismo.
__________________
Mi página personal: Julián Urbano
  #9 (permalink)  
Antiguo 25/05/2005, 09:07
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 11 meses
Puntos: 0
Esta es la clase CSession
Código PHP:
class CSession
{
    var 
$Login;
    var 
$PessoaID;
    var 
$Nome;
    var 
$Logado;
    var 
$Perfil;    

    function 
CSession()
    {
        
$this->Login "";
        
$this->PessoaID "";
        
$this->Nome "";
        
$this->Logado false;  
        
$this->Perfil "";  
    }
    
    function 
bExiste$sLogin )
    {
        global 
$tdb;
        
$sSql "select *,Decode( a04Senha, '" CHAVE_CRYPT "') as SenhaDec from nets04ftaPessoa_Login, nett196ftaPessoa 
where a04LoginName = '$sLogin' And a04CdPessoa = a196CdPessoa"
;
                
        
$bRet $tdb->DoSQL$sSql );
        
        if (!
$bRet)
        {
            
$msgErro $tdb->LastError;
            echo(
"Error: La consulta para el login ha fallado<br>$msgErro");
        }
        return( 
$tdb->rsCount 0);
    }    

    function 
bRecupera()
    {
        global 
$tdb;
        
$this->Login    $tdb->rs["a04LoginName"];
        
$this->PessoaID $tdb->rs["a04CdPessoa"] ;
        
$this->Nome     $tdb->rs["a04LoginName"] ;
        return(
true);
    }
    
    function 
ValidaSenha$sLogin$sPassword $MD5
    {
        global 
$tdb;
        if ( 
$this->bExiste$sLogin ) )
        {
            
$PassServer md5($tdb->rs['SenhaDec'].$MD5);
            
            if( 
strcasecmp($PassServer $sPassword) == )
            {
                if ( 
$this->bRecupera() )
                {
                    
$this->Logado true;
                    return( 
);
                }
                else
                    return( 
); 
            }
            else
                return( 
);
        }
        else
            {
            return( 
);
            }
    }


    function 
isSession()
    {
        return (isset(
$_SESSION["g_Session"]));
    }

    function 
Logon()
    {
        if ( !
isSession() )
            include( 
"login.html" );
    }

    function 
Logoff()
    {
        
$_SESSION = array();
        
session_destroy();
        
header"Location: login.html" );
    }

La verdad no he podido obtener el valor de la variable de sesion. Por favor ayudenme es muy urgente!!!!!!
  #10 (permalink)  
Antiguo 25/05/2005, 09:11
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 7 meses
Puntos: 1
Por el código que mandas, supongo que será poniendo $ses->Perfil en lugar de $ses
Si no es con eso, prueba otro de los atributos, alguno será el que buscas, pero seguramente sea ese.
__________________
Mi página personal: Julián Urbano
  #11 (permalink)  
Antiguo 25/05/2005, 09:30
 
Fecha de Ingreso: mayo-2005
Mensajes: 27
Antigüedad: 18 años, 11 meses
Puntos: 0
Nada que funciona...le mande como parametro lo que vos me dijiste pero ahora la variable esta vacia y no entiendo porque. Por favor diganme que otra cosa puedo hacer estoy desesperado con esto!!!!!

Gracias
  #12 (permalink)  
Antiguo 25/05/2005, 10:10
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 7 meses
Puntos: 1
Si esa variable está vacía es porque no creaste bien el objeto de la clase CSession. Mira a ver dónde hiciste eso, no es normal que tengas atributos de un objeto vacíos. Quizá sea en el método siguiente:
Código PHP:

    
function bRecupera()
    {
        global 
$tdb;
        
$this->Login    $tdb->rs["a04LoginName"];
        
$this->PessoaID $tdb->rs["a04CdPessoa"] ;
        
$this->Nome     $tdb->rs["a04LoginName"] ;
        return(
true);
    } 
Veo que rellenas todos los atributos, pero Perfil no, de ahí que siga vacío desde la construcción del objeto. No deberías poner algo como esto?
Código PHP:
 $this->Perfil $tdb->rs["a04Perfil"] ; 
__________________
Mi página personal: Julián Urbano
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 01:15.