Foros del Web » Programando para Internet » PHP »

La autentificacion me esta sacando la cabeza

Estas en el tema de La autentificacion me esta sacando la cabeza en el foro de PHP en Foros del Web. Hola amigos, estoy preparando un sistema de autentificacion y no se por qué no anda.. :S el problema lo vi, es el md5.. les dejo ...
  #1 (permalink)  
Antiguo 12/05/2008, 15:22
 
Fecha de Ingreso: septiembre-2006
Ubicación: La Plata
Mensajes: 52
Antigüedad: 17 años, 7 meses
Puntos: 4
La autentificacion me esta sacando la cabeza

Hola amigos, estoy preparando un sistema de autentificacion y no se por qué no anda.. :S el problema lo vi, es el md5.. les dejo el codigo a ver si tienen alguna solucion por ahi..

Código PHP:
<?php
include 'conexion.php';
$username $_POST["username"];
$password md5($_POST["password"]);
//Comprobacion del envio del nombre de usuario y password
$result mysql_query("select * from usuarios");
while(
$row mysql_fetch_array($result)) {
            if (
$row["usuario"]==$username){
                
$userbd=$row["usuario"];
                
$pass=$row["password"];
            }
}            
                if (
$password==$pass) {
                    
$_SESSION["s_nombre"] = $userbd;
                    
header ("Location: http://localhost");
                }else{ echo 
'<center>El usuario o contraseña que ha ingresado no existen. Por favor intente         nuevamente.<br><br>Si todabía no se ha registrado hágalo <a href="registrarse.php">aquí</a></center>';}
mysql_free_result($result);


?>
Creo que el problema está en el md5 ya que al loguearme pongo todos los datos bien y me salta el mensaje de error:

Cita:
El usuario o contraseña que ha ingresado no existen. Por favor intente nuevamente.<br><br>Si todabía no se ha registrado hágalo aquí
Cuando le saco el md5 y cambio el pass del usuario en la bd anda perfecto.. :S

tienen idea qué pueda ser?

hay alguna forma de desencriptación para poder comparar las contraseñas?

un saludo, muchas gracias
  #2 (permalink)  
Antiguo 12/05/2008, 15:33
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Re: La autentificacion me esta sacando la cabeza

No, No hay una funcion que haga lo contrario de md5()

Muestra el codigo que usas para registrar al usuario, este de autentificacion parece bueno.
Y cambia esta linea:

Cita:
$result = mysql_query("select * from usuarios");
por

Cita:
$result = mysql_query("select * from usuarios WHERE usuarios = '$username'");//solo te interesa esta pass de este user
Un saludo
  #3 (permalink)  
Antiguo 12/05/2008, 15:50
 
Fecha de Ingreso: septiembre-2006
Ubicación: La Plata
Mensajes: 52
Antigüedad: 17 años, 7 meses
Puntos: 4
Re: La autentificacion me esta sacando la cabeza

Código HTML:
<form name="form1" method="post" action="autenticacion.php">
          <input name="username" type="text" class="style1" value="Usuario" size="15">
          <input name="password" type="password" class="style1" value="123456" size="15">
           <input name="Submit" type="submit" class="style1" value="Entrar">
        </form> 
  #4 (permalink)  
Antiguo 12/05/2008, 15:59
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: La autentificacion me esta sacando la cabeza

Lo que debes hacer es lo inverso, en vez de tratar de convertir una cadena de md5 a normal, convierte el password que estas ingresando a md5.

Puedes hacerlo con:
Código PHP:
$sql "SELECT * FROM usuarios WHERE usuario = '$username' AND password = '".md5($password)."'";
$result mysql_query($sql); 
Aca hay mas informacion:
http://cl.php.net/manual/es/function.md5.php

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 12/05/2008, 16:02
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Re: La autentificacion me esta sacando la cabeza

pero enseña el codigo que registra a un user nievo en la BD
  #6 (permalink)  
Antiguo 12/05/2008, 16:11
 
Fecha de Ingreso: octubre-2007
Ubicación: Capital Federal
Mensajes: 215
Antigüedad: 16 años, 6 meses
Puntos: 1
Re: La autentificacion me esta sacando la cabeza

la 2da línea

include 'conexion.php';

es

include ("conexion.php");
  #7 (permalink)  
Antiguo 12/05/2008, 16:23
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: La autentificacion me esta sacando la cabeza

Disculpa, no habia leido todo correctamente:
Código PHP:
$username $_POST["username"];
$password md5($_POST["password"]);
echo 
$password//fijate que sale aca 
Si en esa linea esta el password completo igual al que tienes en la base de datos el problema esta en php.

Si por el contrario son distintos, debes revisar en php asi:
Código PHP:
$password md5('TUPASSWORD');
echo 
$password//fijate que sale aca 
Y ver si esta bien... sino... es porque al ingresar el password hay algo que no esta funcionando.

Puede ser por el largo del campo o porque estas ingresando un espacio al final o al principio de la cadena.

Ahi tienes varias opciones. De todas maneras envianos el codigo de ingreso para poder corroborar que todo este bien.

Suerte
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #8 (permalink)  
Antiguo 14/05/2008, 15:58
 
Fecha de Ingreso: septiembre-2006
Ubicación: La Plata
Mensajes: 52
Antigüedad: 17 años, 7 meses
Puntos: 4
Re: La autentificacion me esta sacando la cabeza

hola muchachos..

ya intenté con todo u.u pero no sale..

Marvin hice lo que me dijiste.. y me salió un encriptado diferente al que sale cuando ingreso el password.. :S cada vez me convenzo más de que mi página está poseida jaja

suponete que para loguearme ingreso como pass: 123456

y en la bd está encriptado ese 123456 y queda esi: e10adc3949ba59abbe56

en cambio cuando encripto con md5 el password que obtengo por POST desde el login el 123456 se convierte en 14e1b600b1fd579f47433b88e8d85291

por eso al compararlos me tira error...

:S qué podrá ser?
  #9 (permalink)  
Antiguo 14/05/2008, 16:24
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Re: La autentificacion me esta sacando la cabeza

encripta la clave del user al mismo tiempo que la inserta en la base de datos en el registro del user, solo eso

o cambia este if:

Cita:
if ($password==$pass)
por
Cita:
if ($password==md5($pass))
Un saludo
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:49.