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

problema con atributos

Estas en el tema de problema con atributos en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, estoy trabajando con php4 pero con POO y tengo un problema que es el siguiente: Estoy armando una clase para tener funcionalidad de un ...
  #1 (permalink)  
Antiguo 01/08/2005, 13:15
 
Fecha de Ingreso: enero-2004
Ubicación: Argentina, Buenos Aires, Mar del Plata
Mensajes: 38
Antigüedad: 20 años, 3 meses
Puntos: 0
problema con atributos

Hola, estoy trabajando con php4 pero con POO y tengo un problema que es el siguiente:

Estoy armando una clase para tener funcionalidad de un libro de visitas. La misma esta andando lo mas bien, lo que pasa es que le quise agregar un filtro de malas palabras, y a su vez, cuando detecta que hay malas palabras, queria mostrar el error. Bueno, el error lo quiero manejar como un string que seria asignado como un atributo de la clase... es decir... $librovisitas->error
El problema esta en que el valor del constructor lo toma bien, pero cuando obtengo un error y quiero cambiar el estado del atributo, el mismo no se cambia

dentro de la clase, cuando detecto un errror lo que hago es asigarle la referencia del error al atributo para mostrarlo en la pagina correspondiente:

Ejemplo:
Código PHP:
if(empty($mensaje)) {
        
$this->error "Olvidaste completar tu mensaje";

Alguien me puede decir a que se debe esto ? es problema de trabajar con strings ? estoy asignando mal ?
  #2 (permalink)  
Antiguo 01/08/2005, 18:43
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Ese código está dentro de qué método de la clase?
Si puedes, pon el código de la clase, al menos la declaración de variables, el constructor, y algún otro método que utilices para manejar los mensajes de error.
Luego, un ejemplo de cómo funciona bien en el constructor y cómo no funciona cuando quieres cambiarle el valor al atributo.
Con toda esa información , seguramente podremos ayudarte a descubrir el error.

Saludos
  #3 (permalink)  
Antiguo 03/08/2005, 05:23
 
Fecha de Ingreso: enero-2004
Ubicación: Argentina, Buenos Aires, Mar del Plata
Mensajes: 38
Antigüedad: 20 años, 3 meses
Puntos: 0
Bueno, aca paso parte del codigo que tengo en mi clase. EL atributo de error inicializo vacio dentro del constructor, pero despues cuando lo quiero cambiar no me setea el cambio. Pasa lo mismo si inicializo el atributo con una frase cualquiera.

Código PHP:

class LibroVisitas {  
    var        
$dbConn;  // Objeto conexion pasado por el sistema
    
var        $error;       // Variable que devuelve algun error
    
var     $totalRegistros;

// --------------------
// Constructor de clase
// --------------------
function LibroVisitas ($dbConn) {
    
$this->dbConn              $dbConn;
    
$this->totalRegistros      = -1;
    
$this->error                  "";
}

//-----------------------------------------------------------------------------------------
// Valida los datos de la visita
//-----------------------------------------------------------------------------------------
function validarDatos ($nombre$email$mensaje) {
    
// Saco los espacios en blanco del comienzo y el final
    
$nombre        trim($nombre);
    
$email        trim($email);
    
$mensaje    trim($mensaje);
    
    if(empty(
$nombre)) {
          
$this->error "Olvidaste completar tu nombre";
    }
    
    if(!empty(
$email)) {
         if (!
ereg("^[^@]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,}$"$email)) {
            
$this->error "La direccion de mail no es valida";
        }
    } else {
        
$this->error "Olvidaste completar tu direccion de mail";
    }
    
    if(empty(
$mensaje)) {
        
$this->error "Olvidaste completar tu mensaje";
    }
// Fin De validarDatos 
  #4 (permalink)  
Antiguo 03/08/2005, 18:20
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Te faltó el código que no te funciona. Al parecer todo está en orden.

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 05:27.