Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] CodeIgniter Autenticacion de Usuario PHP, no funciona bien

Estas en el tema de Autenticacion de Usuario PHP, no funciona bien en el foro de PHP en Foros del Web. Buenas gente, aca ando enfermo. Hace 3 días trato de hacer algo como esto y no me funciona. Es decepcionante la verdad. Espero si no ...
  #1 (permalink)  
Antiguo 16/11/2013, 19:11
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 12 años, 10 meses
Puntos: 0
Autenticacion de Usuario PHP, no funciona bien

Buenas gente, aca ando enfermo. Hace 3 días trato de hacer algo como esto y no me funciona. Es decepcionante la verdad. Espero si no molesto alguien pueda darme una mano.

Tengo un index tan sencillo como este

Código PHP:
<html>
<
head>
<
title>Inicio de sesión</title>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</
head>
<
body>
<
form action="control.php" method="post" id="form"><br>
Usuario: <input type="text" name="usuario" id="usuario" /><br>
Clave: <input type="password" name="clave" id="clave" /><br>
<
input type="submit" value="Entrar">
</
form>
</
body>
</
html
Luego la pagina control que tiene esto

Código PHP:
<?php
// A continuación, realizamos la conexión con nuestra base de datos en MySQL
$link mysql_connect("localhost","pointtec","04hf43p86s");
mysql_select_db("pointtec_MGP",$link) or die ("Error 1");

//El query valida si el usuario ingresado existe en la base de datos. Se utiliza la función htmlentities para evitar inyecciones SQL
$myusuario mysql_query("SELECT usuario FROM namausuarios WHERE usuario='".htmlentities($_POST["usuario"])."'") or die ("Error 2");
$nmyusuario mysql_num_rows($myusuario) or die ("Error 3");

//Si existe el usuario, validamos también la contraseña ingresada.

if($nmyusuario !=0)

{
    
$sql "select usuario from namausuarios where usuario = '".htmlentities($_POST["usuario"])."' and clave = '".md5(htmlentities($_POST["clave"]))."'";
    
$myclave mysql_query($sql,$link);
    
$nmyclave mysql_num_rows($myclave);
    
    
//Si el usuario y clave ingresado son correctos (y el usuario está activo en la BD), creamos la sesión del mismo.
    
if($nmyclave != 0)
        {
        
session_start();
        
//Guardamos dos variables de sesión que nos auxiliará para saber si se está o no “logueado” un usuario
        
$_SESSION["autentica"] = "SIP";
        
$_SESSION["usuarioactual"] = mysql_result($myclave,0,0); //nombre del usuario logueado.
        //Direccionamos a nuestra página principal del sistema.
        
echo "Contraseña correcta";
        }
        else
        {
        echo 
"contraseña incorrecta";
        }
}
else
{
echo 
"Usuario no existe";
}
mysql_close($link);
?>
En el servidor tengo la base de datos con una tabla creada que dice ser usuarios.
Los campos son usuario, clave y estado.

Si el usuario esta bien y la contraseña mal. Todo es normal
Si el usuario y clave estan bien, todo normal.
Pero si el usuario esta mal y no existe en la tabla se me muere en el "Error 3".
El codigo no sigue corriendo y no puedo hacer que salga algun error o similar, podría alguien por favor darme una manito? Gracias gente muchas gracias!!!
  #2 (permalink)  
Antiguo 16/11/2013, 19:34
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Autenticacion de Usuario PHP, no funciona bien

MAL

Código PHP:
Ver original
  1. $nmyusuario = mysql_num_rows($myusuario) or die ("Error 3");

BIEN

Código PHP:
Ver original
  1. $nmyusuario = mysql_num_rows($myusuario);

Si dejas el or die en ese punto y si no se encuentran registros no va a continuar con la ejecución (cero = false).
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 17/11/2013, 08:01
 
Fecha de Ingreso: junio-2011
Mensajes: 42
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Autenticacion de Usuario PHP, no funciona bien

Lo acabo de probar y funciona, hace tres días que estoy con esto y no puedo creer que lo que fallaba era lo que yo pensaba que me ayudaba a buscar fallos.
Desde ya muchas pero muchas gracias por ayudarme y por aclararme la función exacta del die, me lo enseñaron a usar para buscar errores en las lineas pero veo que no es exactamente esa la función.
Gracias de nuevo !!!

Etiquetas: codeigniter, html, mysql, select, sql, tabla, usuario, usuarios, variable
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 18:25.