Foros del Web » Programando para Internet » PHP »

problemas con login

Estas en el tema de problemas con login en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/04/2011, 10:10
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 8 años, 10 meses
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!
  #2 (permalink)  
Antiguo 04/04/2011, 10:19
Avatar de Hs_Jeldres  
Fecha de Ingreso: marzo-2011
Mensajes: 25
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: problemas con login

Hola Mira te paso mi login para que lo chequess

index.php

Código PHP:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>Untitled Document</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6. </head>
  7.  
  8. <body>
  9. <?php
  10. echo 'Bienvenido Al Sistema de Reportes Semanales Y Mensuales, ';
  11. if (isset($_SESSION['k_username'])) {
  12. echo '<b>'.$_SESSION['k_username'].'</b>.';
  13. echo '<p><a href="logout.php">Logout</a></p>';
  14. }
  15. else{
  16. echo '<form action="validar_usuario.php" method="post">
  17. Usuario:<br /><input type="text" name="usuario" size="20" maxlength="20" />
  18. <br />
  19. Password:<br /><input type="password" name="password" size="20" maxlength="10" />
  20. <br />
  21. <input type="submit" value="Ingresar" />
  22. </form>';  
  23. echo '<p><a href="registrar.php">Registrar</a></p>';
  24. }
  25. ?>
  26. </body>
  27. </html>


validar_usuario.php
Código PHP:
Ver original
  1. <?php
  2. //datos para establecer la conexion con la base de mysql.
  3. mysql_connect('localhost','root','1111')or die ('Ha fallado la conexión: '.mysql_error());
  4. mysql_select_db('prueba')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  5. function quitar($mensaje)
  6. {
  7. $nopermitidos = array("'",'\\','<','>',"\"");
  8. $mensaje = str_replace($nopermitidos, "", $mensaje);
  9. return $mensaje;
  10. }
  11. if(trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
  12. {
  13.  
  14. $usuario = strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));
  15. $password = $HTTP_POST_VARS["password"];
  16. $result = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
  17. if($row = mysql_fetch_array($result)){
  18. if($row["password"] == $password){
  19. $_SESSION["k_username"] = $row['usuario'];
  20. echo 'Has sido logueado correctamente  redireccionando...'.$_SESSION['k_username'].' <p>';
  21. echo '<SCRIPT LANGUAGE="javascript">
  22. location.href = "tupaginadepuesdelogear.php";
  23. </SCRIPT>';
  24. }else{
  25. echo 'Password incorrecto','<SCRIPT LANGUAGE="javascript">
  26. location.href = "index.php";
  27. </SCRIPT>';
  28. }
  29. }else{
  30. echo 'Usuario no existente en la base de datos','<SCRIPT LANGUAGE="javascript">
  31. location.href = "index.php";
  32. </SCRIPT>';
  33. }
  34. }else{
  35. echo 'Debe especificar user y password','<SCRIPT LANGUAGE="javascript">
  36. location.href = "index.php";
  37. </SCRIPT>';
  38. }
  39. ?>

cualquier cosa pregunta
  #3 (permalink)  
Antiguo 06/04/2011, 05:07
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 8 años, 10 meses
Puntos: 3
Respuesta: problemas con login

solucionado! típicos errores absurdos de sintaxis...
muchas gracias de todas formas!
  #4 (permalink)  
Antiguo 06/04/2011, 10:09
Avatar de Hs_Jeldres  
Fecha de Ingreso: marzo-2011
Mensajes: 25
Antigüedad: 8 años, 10 meses
Puntos: 0
De acuerdo Respuesta: problemas con login

De nada cuando necesites.

Etiquetas: login, usuarios
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 02:28.