Foros del Web » Programando para Internet » PHP »

Login con MD5

Estas en el tema de Login con MD5 en el foro de PHP en Foros del Web. Hola foreros, estoy intentando hacer un login de usuario con la encriptacion de la contraseña usando MD5, por supuesto que cuando los usuarios se registran, ...
  #1 (permalink)  
Antiguo 31/10/2010, 22:01
Avatar de gringofer  
Fecha de Ingreso: agosto-2010
Ubicación: Córdoba, Argentina
Mensajes: 338
Antigüedad: 10 años, 9 meses
Puntos: 22
Pregunta Login con MD5

Hola foreros, estoy intentando hacer un login de usuario con la encriptacion de la contraseña usando MD5, por supuesto que cuando los usuarios se registran, su contraseña tambien es encriptada.
Pero tengo un error en mi codigo php que se encarga de verificar si el usuario y la contraseña existen para asi poder acceder a la pag. principal.
A continuacion les dejo el codigo:

Código PHP:
<?php

// Configura los datos de tu cuenta
$dbhost='XXXXXXX';
$dbusername='XXXXXX';
$dbuserpass='XXXXXXXXX';
$dbname='XXXXXX';
$usuariolog$_POST['usuariolog'];
$contrasenia$_POST['contrasenialog'];
$contrasenialogmd5($contrasenia);
//conecto con la base de datos 
$conn mysql_connect("$dbhost","$dbusername","$dbuserpass"); 
//selecciono la BBDD 
mysql_select_db("$dbname",$conn); 

//Sentencia SQL para buscar un usuario con esos datos 
$ssql = ("SELECT * FROM usuarios WHERE username='$usuariolog' and password='$contrasenialog'"); 

//Ejecuto la sentencia 
$rs mysql_query($ssql,$conn); 

//vemos si el usuario y contraseña es váildo 
//si la ejecución de la sentencia SQL nos da algún resultado 
//es que si que existe esa conbinación usuario/contraseña 
if (mysql_num_rows($rs)!=0){ 
       
//usuario y contraseña válidos 
       //defino una sesion y guardo datos 
       
session_start(); 
       
session_register("autentificado"); 
       
$autentificado "SI"
       
header ("Location: http://www.jamola.net/inicio.php");    
}else { 
       
//si no existe le mando otra vez a la portada 
       
header("Location:  http://www.jamola.net"); 

mysql_free_result($rs); 
mysql_close($conn); 
?>
Alguien me podria decir que estoy haciendo mal? lo intente de muchas formas pero no pude.... desde ya muchas gracias!
  #2 (permalink)  
Antiguo 31/10/2010, 22:53
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 12 años
Puntos: 1517
Respuesta: Login con MD5

Haz un var_dump a las variables para que veas que contienen, luego compara con lo que tienes en la base de datos para ver si es lo mismo. Tambien usa mysql_error para saber si tienes algun error en tu consulta.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 01/11/2010, 05:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.323
Antigüedad: 13 años, 5 meses
Puntos: 2656
Respuesta: Login con MD5

Si el error es de sintaxis para MySQL, es probable que sea porque estás usando una palabra reservada de SQL como nombre de campo, y eso produce problemas.
Procura no usar nunca palabras reservadas. Es preferible acortarlas o traducirlas, cosa de no toparse con esos problemas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 01/11/2010, 06:40
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 12 años, 1 mes
Puntos: 101
Respuesta: Login con MD5

No se resolver puntualmente tu problema, pero tu codigo se puede optimizar.

Yo usaria session start al principio de pagina. Y luego asignaria la variable de session asi:

Código PHP:
Ver original
  1. $_SESSION['autenticado'] = "SI";
  2.        header ("Location: http://www.jamola.net/inicio.php");

En la consulta (que no se si convenga limpiarla con mysql_real_scape_string por seguridad) solo buscaria segun el nombre de usuario, que debería ser unico. No buscaria segun la password (ya a eso lo vas a chequear luego) .

Siguiendo con la consulta, no seleccionaría toodos los campos (SELECT *) sino solo la password. Y una vez hecha la consulta comparar las claves. O seguir utilizando tu manera pero no seleccionando todo (para que usar * si solo vas a hacer un conteo tipo "existe", "no existe"?)

Saludos!
  #5 (permalink)  
Antiguo 01/11/2010, 19:37
Avatar de gringofer  
Fecha de Ingreso: agosto-2010
Ubicación: Córdoba, Argentina
Mensajes: 338
Antigüedad: 10 años, 9 meses
Puntos: 22
Respuesta: Login con MD5

Quiero agradecerles a todos por su ayuda, la verdad que me sirvió de mucho la ayuda de los 3 (abimaelrc, gnzsoloyo, mayid), utilizando var_dump me di cuenta que enviaban las variables, y se enviaba lo correcto en las variables, por lo que no entendia que estaba mal del codigo por mas que le buscara y buscara la vuelta, con la ayuda de "palabra reservada" y los consejos de mayid logre optimizar al maximo mi codigo, y no le encontraba error... pero seguia sin funcionar, hasta que de tanto probar, tanto tocar, tanto y tanto, me di cuenta que cuando cree la tabla en la base de datos donde se almacenan tanto el usuario y la contraseña a la hora de registrarse, en el campo contraseña habia puesto VARCHAR (25), y aqui estaba el error, cuando la contraseña es encriptada, tiene mas de 25 caracteres, por lo que a la hora del registro solo se almacenaban 25 caracteres de la contraseña, mientras que a la hora del login, la contraseña estaba completa y eso hacia que no coincidan, pero bueno, gracias a ustedes pude darme cuenta y resolver mi problema, que al final termino siendo una estupidez, pero dificil de encontrar, de nuevo gracias y hasta luego!
  #6 (permalink)  
Antiguo 01/11/2010, 20:29
 
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 99
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Login con MD5

jejeje q curioso ;) lo mejor en estas cosas es un descansado y revisar las cosas más tontas...

Etiquetas: login, md5, 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 14:00.