Problema al comprobar password en formulario
Publicado por Victor Gonzalez (4 intervenciones) el 10/11/2006 20:53:17
Bueno... ya empieza a ir bien el tema de el sistema de login, mi problema viene ahora en que el password se encripta cuando se realiza el registro con
Código:
// Hash the password // $password = base64_encode(pack("H*", sha1(utf8_encode($password))));
Y a la hora de realizar el logueo pues... no me toma el password :S Lo que he realizado para probar ahora mismo es cambiar un password de la database para que no este encriptado y el sistema funciona.
Pero como hacer para que el formulario se fije en el password encriptado?!
Aqui lo que he realizado hasta ahora:
Login.php
<!doctype html public "-//w3c//dtd html 3.2//en">
<html>
<head>
<title>Titulo</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
<form action='loginck.php' method=post>
<table border='0' cellspacing='0' cellpadding='0' align=center>
<tr id='cat'>
<tr> <td bgcolor='#f1f1f1' ><font face='verdana, arial, helvetica' size='2' align='center'> Login
</font></td>
<td bgcolor='#f1f1f1' align='center'><font face='verdana, arial, helvetica' size='2' >
<input type ='text' class='bginput' name='login' ></font></td></tr>
<tr> <td bgcolor='#ffffff' ><font face='verdana, arial, helvetica' size='2' align='center'> Password
</font></td> <td bgcolor='#ffffff' align='center'><font face='verdana, arial, helvetica' size='2' >
<input type ='password' class='bginput' name='password' ></font></td></tr>
<tr> <td bgcolor='#f1f1f1' colspan='2' align='center'><font face='verdana, arial, helvetica' size='2' align='center'>
</font></td> </tr>
<tr> <td bgcolor='#f1f1f1' colspan='2' align='center'><font face='verdana, arial, helvetica' size='2' align='center'>
<input type='submit' value='Submit'> <input type='reset' value='Reset'>
</font></td> </tr>
<tr> <td bgcolor='#f1f1f1' colspan='2' align='center'><font face='verdana, arial, helvetica' size='2' align='center'>
</font></td> </tr>
</table></center></form>
</body>
</html>
loginck.php
Código PHP:
<?
include "include/session.php";
include "include/z_db.php";
?>
<!doctype html public "-//w3c//dtd html 3.2//en">
<html>
<head>
<title>Titulo</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
<?
$login=mysql_real_escape_string($login);
$password=mysql_real_escape_string($password);
if($rec=mysql_fetch_array(mysql_query("SELECT * FROM l2jdb WHERE login='$login' AND password = '$password'"))){
if(($rec['login']==$login)&&($rec['password']==$password)){
include "include/newsession.php";
echo "<p class=data> <center>Logueado satisfactoriamente<br><br><a href='logout.php'> Desloguear </a><br></center>";
print "<script>";
print " self.location='bienvenido.php';"; // Comment this line if you don't want to redirect
print "</script>";
}
}
else {
session_unset();
echo "<font face='Verdana' size='2' color=red>Login incorrecto. Usa tu usuario y password correctos.<br><center><input type='button' value='Reintentar' onClick='history.go(-1)'></center>";
}
?>
</body>
</html>
Se que el fallo esta en
$password=mysql_real_escape_string($password);
pero no se como arreglarlo.
Código:
// Hash the password // $password = base64_encode(pack("H*", sha1(utf8_encode($password))));
Y a la hora de realizar el logueo pues... no me toma el password :S Lo que he realizado para probar ahora mismo es cambiar un password de la database para que no este encriptado y el sistema funciona.
Pero como hacer para que el formulario se fije en el password encriptado?!
Aqui lo que he realizado hasta ahora:
Login.php
<!doctype html public "-//w3c//dtd html 3.2//en">
<html>
<head>
<title>Titulo</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
<form action='loginck.php' method=post>
<table border='0' cellspacing='0' cellpadding='0' align=center>
<tr id='cat'>
<tr> <td bgcolor='#f1f1f1' ><font face='verdana, arial, helvetica' size='2' align='center'> Login
</font></td>
<td bgcolor='#f1f1f1' align='center'><font face='verdana, arial, helvetica' size='2' >
<input type ='text' class='bginput' name='login' ></font></td></tr>
<tr> <td bgcolor='#ffffff' ><font face='verdana, arial, helvetica' size='2' align='center'> Password
</font></td> <td bgcolor='#ffffff' align='center'><font face='verdana, arial, helvetica' size='2' >
<input type ='password' class='bginput' name='password' ></font></td></tr>
<tr> <td bgcolor='#f1f1f1' colspan='2' align='center'><font face='verdana, arial, helvetica' size='2' align='center'>
</font></td> </tr>
<tr> <td bgcolor='#f1f1f1' colspan='2' align='center'><font face='verdana, arial, helvetica' size='2' align='center'>
<input type='submit' value='Submit'> <input type='reset' value='Reset'>
</font></td> </tr>
<tr> <td bgcolor='#f1f1f1' colspan='2' align='center'><font face='verdana, arial, helvetica' size='2' align='center'>
</font></td> </tr>
</table></center></form>
</body>
</html>
loginck.php
Código PHP:
<?
include "include/session.php";
include "include/z_db.php";
?>
<!doctype html public "-//w3c//dtd html 3.2//en">
<html>
<head>
<title>Titulo</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
<?
$login=mysql_real_escape_string($login);
$password=mysql_real_escape_string($password);
if($rec=mysql_fetch_array(mysql_query("SELECT * FROM l2jdb WHERE login='$login' AND password = '$password'"))){
if(($rec['login']==$login)&&($rec['password']==$password)){
include "include/newsession.php";
echo "<p class=data> <center>Logueado satisfactoriamente<br><br><a href='logout.php'> Desloguear </a><br></center>";
print "<script>";
print " self.location='bienvenido.php';"; // Comment this line if you don't want to redirect
print "</script>";
}
}
else {
session_unset();
echo "<font face='Verdana' size='2' color=red>Login incorrecto. Usa tu usuario y password correctos.<br><center><input type='button' value='Reintentar' onClick='history.go(-1)'></center>";
}
?>
</body>
</html>
Se que el fallo esta en
$password=mysql_real_escape_string($password);
pero no se como arreglarlo.
Valora esta pregunta


0