• Domingo 17 de Noviembre de 2024, 16:47

Autor Tema:  Problema validación de usuario con contraseñas encriptadas en md5  (Leído 5301 veces)

Game User

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Problema validación de usuario con contraseñas encriptadas en md5
« en: Miércoles 30 de Mayo de 2012, 19:38 »
0
Por favor, ayudadme.
He encriptado las contraseñas de mi web con md5, cuando alguien se registra funciona, la contraseña se encripta en md5.
El problema viene cuando es hora de iniciar sesión. Solo se puede iniciar sesion con la contraseña encriptada.
¿Podriais ayudarme?
codigo de registro:
<?
include('config.php');


if(($_POST[nick] == ' ') or ($_POST[pass] == ' ') or ($_POST[pass1] == ' ') )
{
Header("Location: reg.php");
}else{


if($_POST[pass] != $_POST[pass1])
{
echo 'Las passwords no son iguales';
}else{


$user = stripslashes($_POST["nick"]);
$user = strip_tags($user);
$pass = stripslashes($_POST["pass"]);
$pass = strip_tags($pass);
$pass = md5($contrasena);


$usuarios=mysql_query("SELECT nick FROM users WHERE nick='$user' ");
if($user_ok=mysql_fetch_array($usuarios))
{
echo 'El usuario ya esta registrado';
mysql_free_result($usuarios);
}else{

$email = stripslashes($_POST["email"]);
$email = strip_tags($email);

$fecha = time();
$level = "2";

mysql_query("INSERT INTO users (nick,pass,email,fecha,level) values ('$user','$pass','$email','$fecha','$level') ");
echo 'Usuario registrado exitosamente';
Header("Location: index.php");
}

}

}
?>

codigo de inicio de sesión:
<?
include('config.php');

if( ($_POST[nick] == ' ') or ($_POST[pass] == ' ') )
{
Header("Location: index.php");
}else{

$usuarios=mysql_query("SELECT * FROM users WHERE nick='$_POST[nick]' and pass='$_POST[pass]' ");
$pass=md5($pass);


$sql = "SELECT * FROM users  WHERE usuario='".$usuario."' AND contrasena='".$contrasena."'"; 

if($user_ok = mysql_fetch_array($usuarios))
{

session_register("usuario");
session_register("idusuario");
session_register("level");

$_SESSION[usuario] = $user_ok["nick"];
$_SESSION[idusuario] = $user_ok["id"];
$_SESSION[level] = $user_ok["level"];
Header("Location: index.php");
}else{
echo 'Nick y pass incorrectos';
}

}
?>
« última modificación: Miércoles 30 de Mayo de 2012, 19:40 por Game User »

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re:Problema validación de usuario con contraseñas encriptadas en md5
« Respuesta #1 en: Miércoles 30 de Mayo de 2012, 21:31 »
0
Hola, bienvenido al foro.

Antes de buscar debes encriptar y buscarla ya encriptada, debido que la encriptación va ser la misma, siempre y  cuando esté bien claro. Y no debes buscarla directamente del POST.

No recuerdo bien como hacerlo con php, pero la idea va así:

Código: PHP
  1. $pass=md5($_POST['pass']);
  2. $usuarios=mysql_query("SELECT * FROM users WHERE nick='$_POST[nick]' and pass='$pass' ");
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re:Problema validación de usuario con contraseñas encriptadas en md5
« Respuesta #2 en: Jueves 31 de Mayo de 2012, 21:00 »
0
También lo puedes directamente con la función md5 del mysql

Código: PHP
  1. $usuarios=mysql_query("SELECT * FROM users WHERE nick='$_POST[nick]' and pass=md5('".$_POST[nick] ."'");

PD. No uses consultas implicitas mejor son las consultas explicitas
El pasado son solo recuerdos, el futuro son solo sueños