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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


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


Desconectado Desconectado

Mensajes: 395


Ver Perfil WWW
Problema con una clase
« en: 29 Agosto 2010, 23:30 pm »

Buenas, la verdad que recien estoy arrancando con POO en PHP y me encontre con mi primer problema que nose cual puede ser la solucion ya que prove diferentes cosas. Bien paso a explicar, tengo dos clases: Validar y Persona, la idea es pasarle las variables del formulario a un metodo de Persona que setiara la variable validada, para esto, el metodo de la clases Persona, llama a metodos de la clase Validar que valida que no tenga caracteres extraños ni que este en blanco la variable. A continuacion les pongo el source de cada clase:

Persona:

Código:
<?php
include("Validar.php");

class Persona extends Validar
{
private $verificacion;

public function setUsPass($usPass)
    {
        if($this->variableVacia($usPass) == 0)
        {
            if($this->validaUsPass($usPass) == 1)
            {
                $this->verificacion= 1;
                return $this->verificacion;
            }
            else
            {
                $this->verificacion= 0;
                return $this->verificacion;
            }
        }
        else
        {
            $this->verificacion= 0;
            return $this->verificacion;
        }
    }
}

Validar:
Código:
class Validar
{
    private $bien;

public function variableVacia($variable)
    {
        if(empty($variable) == 1)
        {
            $this->bien= 1;
            return $this->bien;
        }
        else
        {
            $this->bien= 0;
            return $this->bien;
        }
    }

    public function validaUsPass($varible)
    {
        if(ereg("^[a-zA-Z0-9]{1,15}$",$variable) == 1)
        {
            $this->bien= 1;
            return $this->bien;
        }
        else
        {
            $this->bien= 0;
            return $this->bien
        }
    }
}

Main:
Código:
$usuario = $_POST["us"];
$personas= new Persona;

if($personas->setUsPass($usuario) == 0 )
{
    $msjUs=1;
    $error=1;
}

if($msjUs == 1)
    echo '<li class="error">El usuario ingresado es incorrecto.</li>';


Bien, el problema es el siguiente: Al parecer esta validando correctamente cuando la variable esta en blanco y cuando no, ya que hice varios juegos de prueba descartando la parte que hace la validacion sobre los caracteres y funciona correctamente. Pero con la parte de validar caracteres extraños me esta trayendo problemas ya que me esta dando siempre que el usuario es incorrecto, o sea que la variable tiene caracteres extraños.

Que es lo que esta ocurriendo? ya probe varias cosas y no pude solucionarlo. Muchas gracias.


En línea

novalida

Desconectado Desconectado

Mensajes: 160


Ver Perfil
Re: Problema con una clase
« Respuesta #1 en: 30 Agosto 2010, 11:23 am »

hola, creo que encontré el fallo.
En la función validaUsPass recibes un parámetro llamado $varible y dentro de la función utilizas una variable llamada $variable por lo que siempre trabajarás con una variable (perdón por la redundancia) que no tendrá ningún contenido y de ahí que no pase la validación.
En la última línea de la clase validar faltaría también el ; (por si acaso ;))

Espero que te haya podido ayudar :)

Saludos.


En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Problema con una clase
« Respuesta #2 en: 30 Agosto 2010, 19:43 pm »

Buenas, nose porque utilizas de esa forma una subclase, cuando se utiliza una subclase se busca optimizar pero haces lo contrario xD...

Bueno, aquí una clase que hice, que hace lo mismo pero en menos lineas xD.

validar.php
Código
  1. <?php
  2. class Persona
  3. {
  4. private $verificacion;
  5.  
  6. public function setUsPass($pass)
  7. {
  8.  if(ereg("^[a-zA-Z0-9]{1,15}$",$pass))
  9.  {
  10.    $this->verificacion=1;
  11.    return $this->verificacion;
  12.  }else{
  13.  $this->verificacion=0;
  14.  return $this->verificacion;
  15.  }
  16.  
  17. }
  18. }
  19.  
  20. ?>

Puedes verificar desde la misma expresión que hiciste si el código contiene espacio en blanco y que permita solo caracteres alfanumérico...

Main
Código
  1. <?php
  2. include("validar.php");
  3.  
  4. $usuario = $_POST["us"];
  5. $personas= new Persona;
  6.  
  7. //Definimos las variables...
  8. $msjUs = null;
  9. $error = null;
  10. if(!$personas->setUsPass($usuario))
  11. {
  12.    $msjUs=1;
  13.    $error=1;
  14. }
  15.  
  16. if($msjUs == 1){
  17.     echo '<li class="error">El usuario ingresado es incorrecto.</li>';
  18. }
  19.  
  20. ?>
En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
mark182


Desconectado Desconectado

Mensajes: 395


Ver Perfil WWW
Re: Problema con una clase
« Respuesta #3 en: 30 Agosto 2010, 21:42 pm »

Gracias por sus dos respuestas.

Citar
Buenas, nose porque utilizas de esa forma una subclase, cuando se utiliza una subclase se busca optimizar pero haces lo contrario xD

La verdad es que recien estoy comenzando con POO, y se me habia ocurrido que tener una clase que tenga varios metodos para validar distintas cosas (que es la clase Validar), por eso es que hago eso. Puede ser que no sea los mas optimo, ya que como recien arranco en POO no tengo muy en claro las formas de optimizar. Muchas gracias igualmente.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con clase
Java
Lain0x 1 2,086 Último mensaje 20 Noviembre 2011, 19:01 pm
por RyogiShiki
Problema en una clase en C++:
Programación C/C++
Error 404: 2 2,358 Último mensaje 23 Noviembre 2014, 17:57 pm
por Error 404:
[c++] Problema con clase
Programación C/C++
noob2012 3 1,715 Último mensaje 25 Noviembre 2014, 21:26 pm
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines