Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

ayuda con clase

Estas en el tema de ayuda con clase en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, soy nuevo en POO , estoy haciendo una clase "inutil" pero es para practicar. Mi problema es el siguiente: Por un lado tengo la ...
  #1 (permalink)  
Antiguo 04/07/2008, 21:07
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
ayuda con clase

Hola,
soy nuevo en POO , estoy haciendo una clase "inutil" pero es para practicar.
Mi problema es el siguiente:

Por un lado tengo la funcion filter_vars($email,FILTER_VALIDATE_EMAIL) que ofrece php5 para validar mails.
Estoy haciendo una clase que use esa funcion y no sé donde meterla.

Probé en constructor, y de diversas formas pero no me doy maña :(

Código PHP:
<?php

class prueba {
public 
$email;
public 
$valor;
public 
$resultado;
function 
__construct($email) {
$this-> email $email;
$this-> valor // acá iría filter_vars($email,FILTER_VALIDATE_EMAIL) o al menos // el valor que me devuelve. pero no se  como asignarle el valor o si necesito       // usarlo fuera del constructor  desde otra  funcion
$this-> resultado $resultado;
}

function 
resultado() {

// acá comparo el valor que supuestamente me devolvio filter_vars(...)

if ($this->valor == true) { $this->resultado "bien";}
if (
$this->valor == false) { $this->resultado "mal"; }
return 
$this-> resultado;
}
}


$instancia = new prueba("[email protected]");
echo 
$instancia->resultado();


?>
En realidad me cuesta darme cuenta el funcionamiento del constructor , y de como se usan los valores de retorno de las funciones dentro de una clase...

alguna ayuda?
  #2 (permalink)  
Antiguo 04/07/2008, 23:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: ayuda con clase

Sin ondar mucho en el tema tendrías que hacerlo así:
Código PHP:
<?php

class prueba {
public 
$email;
public 
$valor;
public 
$resultado;
function 
__construct($email) {
$this->email $email;
$this->valor filter_var$emailFILTER_VALIDATE_EMAIL );
$this->resultado $resultado;
}

function 
resultado() {

// acá comparo el valor que supuestamente me devolvio filter_vars(...)

if ($this->valor == true) { $this->resultado "bien";}
if (
$this->valor == false) { $this->resultado "mal"; }
return 
$this-> resultado;
}
}


$instancia = new prueba("[email protected]");
echo 
$instancia->resultado();


?>
Saludos.
  #3 (permalink)  
Antiguo 05/07/2008, 00:28
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 16 años
Puntos: 11
Respuesta: ayuda con clase

Una opción es esta:

Código PHP:
<?php

class prueba {
public 
$email;
public 
$valor;
public 
$resultado;

function 
__construct($email
{
  
$this->email $email
  
$this->valor filter_var$emailFILTER_VALIDATE_EMAIL );
  
$this->resultado $this->valor?"bien":"mal";
}

function 
get_resultado()
{
 return 
$this->resultado;
}

}


$instancia = new prueba("[email protected]");
echo 
$instancia->get_resultado();


?>

y la otra es esta:
Código PHP:
<?php
$email 
"[email protected]";
echo 
filter_var$emailFILTER_VALIDATE_EMAIL )?"bien":"mal";
?>
  #4 (permalink)  
Antiguo 05/07/2008, 08:12
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ayuda con clase

Gracias!
ahora ya me aclaré un poco.
Lo que voy a hacer ahora es poner la validacion directamente en la funcion y no en el constructor, ya que voy a hacer una clase para validar diferentes variables ( emails, urls , consultas sql, etc) todo en una misma clase.
Si me trabo en algo posteo mi nuevo codigo nuevamente en este thread

saludos
  #5 (permalink)  
Antiguo 05/07/2008, 11:31
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ayuda con clase

Como prometí: me hice una clase prueba para validar ( limpiar cadenas de texto para pasarlas por instrucciones SQL , o retornas valores de comprobación de direcciones de e-mail). En este caso las validaciones no se hacen dentro del constructor sinó en funciones aparte.
Soy novato en ésto, lo que hice funciona, pero agradecería alguna crítica sobre mi forma de usar las clases. Estoy haciendo una mala práctica de algo? hay formas mejores de hacerlo?

Gracias.


Código PHP:
<?php

class validacion {

    public 
$mail;
    public 
$sql;
    public 
$valor;
    public 
$resultado;
    
    function 
__construct(){
    
$this->mail $mail;
    
$this->sql $sql;
    
$this->valor $valor;
    
$this->resultado $resultado;
    }
    
    
// valido el mail , el valor de retorno es "bien" o "mal" según corresponda.
    
function validamail($mail){
    
$this->valor filter_var$mailFILTER_VALIDATE_EMAIL );
    return 
$this->resultado $this->valor?"bien":"mal";
    }
    
// valido la instrucción SQL. En este caso no retorna bien o mal, sino que retorna la instruccion "limpia" en caso de haber estado sucia.
    
    
function validasql($sql){
    
    
// YA SE :D addslashes es obsoleto , lo estoy usando solo como una PRUEBA. :D
    
$this->valor addslashes($sql);
    return 
$this-> valor;
}
}

// instancio la clase.
$instancia = new validacion();

// limpio la variable sql
echo $instancia->validasql('bla blabla """" bla bla "bla');

// retorno el valor de la direccion de e-mail  'bien' o 'mal' según haya sido procesada.

echo $instancia->validamail("[email protected]");
?>
saludos
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 15:18.