Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/04/2011, 09:10
portela85
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años
Puntos: 3
Pregunta problemas con login

Hola a todos!
a ver si me podéis echar una manita porque me estoy volviendo loco con el logueo de una aplicación. Mi problema es que cuando envío el usuario y contraseña siempre me vuelven a aparecer las cajas de texto para introducir el usuario+password, sin ni si quiera mostrarme el mensaje de usuario y password incorrectos.
Os copio los archivos. Por un lado tendríamos la plantilla login.tpl.php:
Código:
<div class="log">
        &nbsp;|&nbsp;<p>Si olvid&oacute; su password p&oacute;ngase en contacto con el administrador.</p><br>
	
	<p><font><?php if (isset($error_msg)) print $error_msg;?></font></p>
        
        
        <form method="post" action="login.php">
            
            <span>Usuario:</span>
            <input type="text" name="Ident_consultor" value="<?php if(isset($_COOKIE['Ident_consultor'])) print $_COOKIE['Ident_consultor']; ?>" size="15" >
            
            <span>Password:</span>
            <input type="password" name="password" value="">
            
            <input type="submit" name="enviar" value="Entra!">
            
            
        </form>

</div>
Por otro lado el script login.php

Código:
<?php
session_start();
require_once "./clases/Template.php";
require_once "./clases/Usuario.class.php";

$tpl 		= new Template(); 
$usuario	= new Usuario();
$tpl_login 	= new Template();

if(isset($POST['enviar'])){
    
    try{
        $usuario->login($_POST['Ident_consultor'],$_POST['password']);
    }   
    catch (Exception $e) {
	$tpl_login->set('error_msg',$e->getMessage());
 
    }
}

$tpl_login->set_vars(array(	'usuario_nombres'   => $usuario->obtenerNombreCompleto(),
		    		'usuario_actual'    => $usuario->obtenerUsuarioIdActual(),
				'esadmin'	    => $usuario->usuarioEsAdmin()));

if ($usuario->estaRegistrado())
	$tpl->set('contenido', $tpl_login->fetch('usuario.tpl.php'));
else
	$tpl->set('contenido', $tpl_login->fetch('login.tpl.php'));

			
$tpl->set_vars(array(	        'titulo'		=> 'Herramienta de Administraci&oactute;n',
		    		'usuario_actual'  	=> $usuario->obtenerUsuarioIdActual()));

echo $tpl->fetch('general.tpl.php'); 
?>
La función "login" incluida en Usuario.class
Código:
	public function login($Ident_consultor, $password) { 
	
		$query = "SELECT Ident_consultor, consultor, usuario, password,admin ";
		$query .= "FROM $this->dbTabla WHERE Ident_consultor ='$Ident_consultor' AND password = '$password'"; 
		$consulta = new Consulta($query);
				
		if($fila = $consulta->obtener_fila()) {
				$usuario = array (	'Ident_consultor'		=> $fila['Ident_consultor'],
							'consultor'             	=> $fila['consultor'],
						    	'usuario'               	=> $fila['usuario'],
							'password'	                => $fila['password'],
							'admin'                 	=> $fila['admin']);
        }

		if( $consulta->num_filas() == 0 ){
			throw new Exception("Login y/o Password incorrecto");
		} else {
			$this->registrarUsuarioActual($usuario);
			setcookie("usuarioId", $usuario['Ident_consultor'], time()+60*60*24*31,"/","",0);
		}

	   return true; 
	}
Finalmente el script usuario.php que es a donde se debería de dirigir una vez logueado correctamente.
Código:
<?php
session_start();

require_once "./clases/Template.php";
require_once "./clases/Usuario.class.php";

$tpl 		= new Template(); 
$usuario	= new Usuario();

$tpl->set_vars(array(	'titulo'		=> 'Información de usuario',
		    	'usuario_actual'  	=> $usuario->obtenerUsuarioIdActual()));

if ( $usuario->estaRegistrado() ) {

	$tpl_usuario = new Template();
	$tpl_usuario->set_vars(array(	'usuario_nombres'   => $usuario->obtenerNombreCompleto(),
		    						'usuario_actual'  	=> $usuario->obtenerUsuarioIdActual(),
									'esadmin'			=> $usuario->usuarioEsAdmin()));
	$tpl->set('contenido', $tpl_usuario->fetch('usuario.tpl.php'));
  
} else {

	$tpl_usuario_log = new Template();	
	$tpl->set('contenido', $tpl_usuario_log->fetch('login.tpl.php'));

}
echo $tpl->fetch('general.tpl.php'); 
?>
En el caso de que necesiteis alguna de las funciones como estaRegistrado u obtenerNombreCompleto pedírmelo aunque no sé si es necesario en principio.

Muchas gracias por anticipado!