Tema: MD5 en login
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/07/2009, 05:57
Gend
 
Fecha de Ingreso: diciembre-2008
Mensajes: 4
Antigüedad: 15 años, 4 meses
Puntos: 0
MD5 en login

Buenas usuarios de Foros del Web.
Estoy creando un sistema de usuarios (ahora más que nada por "satisfacción personal", aunque quizá haga algo más de aquí en adelante...quien sabe) y en el registro (registrar.php) si consigo que encripte la contraseña que el user ha introducido y la guarda en la DB con éxito, pero ahora tengo que encriptar la contraseña en el login (login.php y autentificar.php) para que al comprobarla con la que hay en la BD (encriptada ya) la verifique.
Supongo que será fácil hacerlo, pero esto de la seguridad lo he cogido hace poco y no lo manejo. Me he mirado varios hilos y otras páginas relacionado con esto pero no logro "entenderlo"

La base de datos es MySQL, y los archivos son:
reg.php
Código PHP:
<?
include('config.php'); 

echo 
'<form action="registrar.php" method="POST">
Nick: <input type="text" name="nick" size="30"><br>
Password: <input type="password" name="pass" size="30" ><br>
Repetir Password: <input type="password" name="pass1" size="30" ><br>
email: <input type="text" name="email" size="50"><br>
Rollo: <textarea name="rollo" cols="30" rows="10"></textarea><br>
<input type="submit" name="submit" value="Enviar"></form>'
;
?>
registrar.php
Código PHP:
<?
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);

$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);

$rollo stripslashes($_POST["rollo"]);
$rollo strip_tags($rollo);
$rollo str_replace("\n\r","<br>",$rollo);
$rollo str_replace("\r\n","<br>",$rollo);
$rollo str_replace("\n","<br>",$rollo);

$fecha time();
$level "2"

$pass md5($pass);

mysql_query("INSERT INTO users (nick,pass,email,fecha,level,rollo) values ('$user','$pass','$email','$fecha','$level','$rollo') "); 
echo 
'Usuario registrado con éxito'
}

}


?>
login.php
Código PHP:
<?
include('config.php'); 

if(!isset(
$_SESSION[usuario]) )
{

echo 
'<form action="autentificar.php" method="POST">
Nick: <input type="text" name="nick" size="30"><br>
Password: <input type="password" name="pass" size="30" ><br>
<input type="submit" name="submit" value="Enviar"></form>'
;

}else{

echo 
'Bienvenido '.$_SESSION[usuario]; //ej Bienvenido Juan
echo '<br>Tu level es '.$_SESSION[level]; //mostramos el level del user
if($_SESSION[level] == 1
{

echo 
'<br><a href=paginaprivada.php>Ir a pagina privada</a>'
}

echo 
'<br><a href=logout.php>Salir</a>'

}

?>
Código PHP:
<?
include('config.php'); 

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

$usuarios=mysql_query("SELECT * FROM users WHERE nick='$_POST[nick]' and pass='password' ");
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: login.php");

}else{
echo 
'Nick y pass incorrectos';
}


?>
El logout.php tan solo tiene un "session_destroy(); "
Saludos y mil gracias.

Última edición por Gend; 08/07/2009 a las 06:08 Razón: Añadir datos.