Foros del Web » Programando para Internet » PHP »

Recuperar variable dentro de una clase

Estas en el tema de Recuperar variable dentro de una clase en el foro de PHP en Foros del Web. Hola, tengo un código en php que llama a una clase. Os pego sólo parte de la clase, pues creo que con eso es suficiente ...
  #1 (permalink)  
Antiguo 26/02/2010, 10:23
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Recuperar variable dentro de una clase

Hola, tengo un código en php que llama a una clase. Os pego sólo parte de la clase, pues creo que con eso es suficiente (es sobre un logeo de usuario):

Código PHP:
// Verificar si los datos de la cookie son válidos.  
    
if ($cookie['serial'] && $cookie['mail'] && $cookie['password'])  
    {  
      
$query    "SELECT * FROM {$this->table} WHERE (mail = '{$cookie['mail']}') AND (password = '{$cookie['password']}') AND (cookie = '{$cookie['serial']}') LIMIT 1;";  
    }  
    else  
    {  
      
// Verificar si los datos de session son válidos.  
      
$mail $_SESSION['cf_login_mail'];  
      
$session  session_id();  
      
$query    "SELECT * FROM {$this->table} WHERE (mail = '$mail') AND (session = '$session') LIMIT 1;";  
    }  


    if (
$result mysql_query($query$this->link))  
    {  
      if (
$row mysql_fetch_assoc($result))  
      {  

                         echo 
$mail;  // justo aquí----------------------------------------------- 


        
return $this->setSession($rowfalsefalse); // Log in  
      
}  
      else  
      {  
        return 
false;  
      }  
    }  
    else  
    {  
      return 
false;  
    } 

El tema es que necesito fuera de la clase el campo $mail.

Poniendo echo $mail (como véis en la clase) sí que me aparece en pantalla el contenido del mail, por lo que me serviría con que pudiese llevar este valor almacenado en $mail hacia fuera de la clase, para tenerlo como una variable "normal" con la que luego pueda hacer un SELECT (desde fuera de la clase).

Espero haberme explicado. Si os hace falta más información me decís
  #2 (permalink)  
Antiguo 26/02/2010, 10:34
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Recuperar variable dentro de una clase

Una vía sería incluirlo en el return. Otros temas más detenidos serían apropiados en el foro de PHP OO
  #3 (permalink)  
Antiguo 26/02/2010, 11:02
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Recuperar variable dentro de una clase

ok, podrías ser un poco más concreto? es que de clases ando bastante pez
  #4 (permalink)  
Antiguo 26/02/2010, 11:32
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Recuperar variable dentro de una clase

Aunq reconozco q yo tampoco estoy muy entrenado en OO.
Pero bueno, si haces
Código PHP:
Ver original
  1. $this->mail = $mail
Podrás referirte a $this->mail desde cualquier función de la clase, o sus extendidas (herencia). Por lo que podrás hacer algo parecido a:
Código PHP:
Ver original
  1. function getData(){
  2.  return $this->mail;
  3. }

Y así tenerlo cuando lo necesites
  #5 (permalink)  
Antiguo 26/02/2010, 11:38
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: Recuperar variable dentro de una clase

Y no era mejor a esperar que algun moderador moviera tu post??

http://www.forosdelweb.com/f77/recup...e-ajax-781565/

Ademas, trate de darte la respuesta varias veces... Porque en vez de tratar de que alguien te de la solucion magica, no te sentas, lo lees, lo entendes y lo solucionas? Como te dije antes, hoy te lo solucionan, y mañana cuando necesites algo mas importante?

Porque no te haces tu propia clase en PHP? Me parece mas facil... Fijate sino, llevas 2 o 3 dias con esto!
__________________
HV Studio
Diseño y desarrollo web
  #6 (permalink)  
Antiguo 26/02/2010, 14:20
Avatar de humanista  
Fecha de Ingreso: abril-2005
Mensajes: 878
Antigüedad: 19 años
Puntos: 15
Respuesta: Recuperar variable dentro de una clase

Eyyy!!!, me funcionó a la primera!, gracias.

Respecto a lo que dices jackson666, pues tienes razón, lo ideal era q algún moderador moviera el post pero al final he dado con la solución en pocas horas moviéndolo yo, con lo cual creo que he acertado trasladándolo.

Gracias por tu ayuda en el otro post, me sirvió de base para resolver mi problema.
  #7 (permalink)  
Antiguo 08/04/2010, 18:35
 
Fecha de Ingreso: abril-2009
Mensajes: 26
Antigüedad: 15 años
Puntos: 1
Respuesta: Recuperar variable dentro de una clase

Hola sólo te comento como buena practica deberias de usar el atributo mail como privado

Código PHP:
class login {
  private 
$mail ;
/*
* TODO TU CÓDIGO MENCIONADO ANTERIORMENTE
*/
public function valida_email(){
// Verificar si los datos de la cookie son válidos.  
    
if ($cookie['serial'] && $cookie['mail'] && $cookie['password'])  
    {  
      
$query    "SELECT * FROM {$this->table} WHERE (mail = '{$cookie['mail']}') AND (password = '{$cookie['password']}') AND (cookie = '{$cookie['serial']}') LIMIT 1;";  
    }  
    else  
    {  
      
// Verificar si los datos de session son válidos.  
      
$mail $_SESSION['cf_login_mail'];  
      
$session  session_id();  
      
$query    "SELECT * FROM {$this->table} WHERE (mail = '$mail') AND (session = '$session') LIMIT 1;";  
    }  

    if (
$result mysql_query($query$this->link))  
    {  
        if (
$row mysql_fetch_assoc($result))  
          {  
                         
//echo $mail;  // justo aquí----------------------------------------------- 
                       
$this->mail $row['email_bd'];
                     return 
$this->setSession($rowfalsefalse); // Log in  
            
}      else     {      return false;      }  
    }     else    {    return 
false;    }  
    

public function 
get_email(){
        return 
$this->mail ;
}


Espero completar la información que te han dado. la cual es correcta. sin embargo nunca está por demas tener buenas practicas de programación.

saludos.

Etiquetas: clase, recuperar, 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:17.