Ver Mensaje Individual
  #7 (permalink)  
Antiguo 20/06/2008, 02:29
Avatar de SUSMO
SUSMO
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: $this->false (php4) a unset($this) (php5)

Hola enriqueplace,

El contexto, es una validación de usuario, en la página de login con un formulario de usuario y password que envía los datos a la misma página. Si el usuario se valida correctamente no se carga la de login y se redirecciona a la pagina principal de la administración.

Aquí te pongo más código tal y como me has pedido y aprovecho para poner como he implementado la solución por si a alguien le puede servir.

Página de login:

Código PHP:
....
if (!empty(
$_POST['usuario']) && !empty($_POST['clave']))

    
$post_usuario strtolower($_POST['usuario']); //Guardo en BDD usuario y password en minúsculas
    
$post_clave strtolower($_POST['clave']);
    
$obj = new Login($post_usuario$post_clave);

    
//Solución, he creado un atributo en la clase que me indica 
    //si el usuario está registrado o no
    
if ($obj->registrado  !== false)  
   {
      
session_start();
      
$_SESSION['USUARIO'] = $post_usuario;
      
$_SESSION['CLAVE'] = $post_clave;
      
header("location: area.php");
      exit();
   }
}
//Empieza el código html de la página de login
.... 
Implementación del constructor de la clase login:

Código PHP:
.....
function 
Login($usuario ""$clave "")

{
    
$this->coneccion = new Coneccion(MYSQL_URL,MYSQL_USER,MYSQL_PASS,MYSQL_SCHEMA);

    
$res $this->coneccion->conecta();

    if (!
$res)

    die(
$this->coneccion->ultimoError());

    
$res $this->coneccion->consulta("SELECT * FROM clientes WHERE usuario='$usuario' AND clave='$clave'");

    if (!
$res)
       die(
$this->coneccion->ultimoError());

    if (
$this->coneccion->numeroResultados() == 0)
   {
        unset(
$this); 
       
$this->registrado false;
        return 
false;
    }
    
$this->registrado true;
    return 
true;
}
... 
Saludos!!!