Foros del Web » Programando para Internet » PHP »

Registro de usuarios con PHP y seguridad HASH

Estas en el tema de Registro de usuarios con PHP y seguridad HASH en el foro de PHP en Foros del Web. Hola usuarios resulta que estoy trabajando en un formulario de registro de usuario con php, lo bueno es que queda registrad en la base de ...
  #1 (permalink)  
Antiguo 17/06/2011, 11:49
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años
Puntos: 1
Registro de usuarios con PHP y seguridad HASH

Hola usuarios
resulta que estoy trabajando en un formulario de registro de usuario con php, lo bueno es que queda registrad en la base de datos, pero no sé cómo hacer para que quede encriptado la contraseña con el famoso hash o sha1 o como sea que se llame, como soy nuevo en esto y no soy programador e estado haciendo esto con ensayo y error y ya me duele la cabeza hace varios días otra cosa tambien es que cuando lo subo no se ve el formulario en el browser (mozilla firefox) les dejo mi trabajo y vean en que estoy fallando, les agradeceré montones su ayuda.

Código PHP:
Ver original
  1. <?php
  2.  
  3. mysql_connect('localhost','XXXXXXXX','XXXXXXXX')or die ('Ha fallado la conexión: '.mysql_error());
  4. mysql_select_db("XXXXXXXX")or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  5. function mostrar(){
  6. echo'<form action="registrar_sha1.php" method="post" name="1">
  7. Usuario (max 20):
  8.  <input type="text" name="username" size="20" maxlength="20" /><br />
  9. Password (max 10):
  10. <input type="password" name="password" size="10" maxlength="10" />
  11. Confirma: <input type="password" name="password2" size="10" maxlength="10" /><br />
  12. Nombre (max 20):
  13.  <input type="text" name="nombre" size="20" maxlength="20" /><br />
  14. Apellido (max 20):
  15.  <input type="text" name="apellido" size="20" maxlength="20" /><br />  
  16. Email (max 40):
  17. <input type="text" name="email" size="20" maxlength="40" /><br />
  18. <input type="submit" onclick="return ec ();" value="Registrar" />
  19. </form>';
  20. }
  21. function mostrar1(){
  22. echo'<FORM ACTION="validar_usuario.php" METHOD="post">
  23.                   Usuario : <INPUT TYPE="text" NAME="usuario" SIZE=20 MAXLENGTH=20><br />
  24.                   Password: <INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=10><br />
  25.                   <INPUT TYPE="submit" VALUE="Ingresar">
  26.                 </FORM>';
  27. }
  28. ?>
  29.  
  30. <?php
  31.  
  32. // verificamos si se han enviado ya las variables necesarias.
  33. if (isset($_POST['username']) && (isset($_POST['password']))
  34. {
  35.     $username = $_POST['username'];
  36.     $password = $_POST['password'];
  37.     $cadena = '478@€shdk%%';
  38.     $pass=$_POST['password'];
  39.     $hash=sha1 ($pass);
  40.     $password2 = $_POST['password2'];
  41.     $nombre = $_POST['nombre'];
  42.     $apellido = $_POST['apellido'];
  43.     $email = $_POST['email'];
  44.     // Hay campos en blanco
  45.     if($username==NULL||$password==NULL||$password2==NULL||$nombre==NULL||$apellido==NULL||$email==NULL) {
  46.         echo 'un campo está vacio.';
  47.     mostrar();
  48.     }else{
  49.         // ¿Coinciden las contraseñas?
  50.         if($password!=$password2) {
  51.             echo 'Las contraseñas no coinciden';
  52.             mostrar();
  53.         }else{
  54.             // Comprobamos si el nombre de usuario o la cuenta de correo ya existían
  55.             $checkuser = mysql_query('SELECT usuario FROM usuarios WHERE usuario='$username'');
  56.             $username_exist = mysql_num_rows($checkuser);
  57.             $checkemail = mysql_query('SELECT email FROM usuarios WHERE email='$email'');
  58.             $email_exist = mysql_num_rows($checkemail);
  59.             if ($email_exist>0||$username_exist>0) {
  60.                 echo 'El nombre de usuario o la cuenta de correo estan ya en uso';
  61.                 mostrar();
  62.             }else{
  63.                 $query = 'INSERT INTO usuarios (usuario, password, nombre, apellido, email, hash, fecha)
  64.                 VALUES (\''.$username.'\',\''.$password.'\',\''.$nombre.'\',\''.$apellido.'\',\''.$email.'\',\''.$hash.'\',\''.date("d-m-Y").'\')';
  65.                 mysql_query($query);
  66.                 echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
  67.                 echo 'Ahora puede entrar ingresando su usuario y su password <br />';
  68.                 mostrar1();
  69.                 ?>
  70.                
  71.                 <?php
  72.             }
  73.         }
  74.     }
  75. }else{
  76. mostrar();
  77. }
  78. ?>
  #2 (permalink)  
Antiguo 17/06/2011, 12:07
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Registro de usuarios con PHP y seguridad HASH

hay dos variables confusas:

$pass=$_POST['password'];

if($password==NULL)
  #3 (permalink)  
Antiguo 17/06/2011, 12:14
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Registro de usuarios con PHP y seguridad HASH

Encríptala desde la variable que ya has recogido.

Código PHP:
$username $_POST['username'];
$password $_POST['password'];
$cadena '478@€shdk%%';
$hash sha1($password);
... 
Y otra cosa, para que la encriptas y después la guardas en la base de datos sin encriptar?

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #4 (permalink)  
Antiguo 17/06/2011, 12:18
Avatar de jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 4 meses
Puntos: 43
Respuesta: Registro de usuarios con PHP y seguridad HASH

Hola gonzaloaedo!

Estás encriptando la contraseña de manera correcta, pero hay un detalle, ya no es necesario que guardes la contraseña original en la base de datos.
Sólo guarda la contraseña encriptada en el campo password de la base de datos.

Ahora, cuando un usuario inicia sesión lo que debes hacer es comparar la contraseña ingresada en el formulario de iniciar sesión, la encriptas con el algoritmo sha1 y la comparas con la que tienes almacenda en la base de datos que es la que previamente almacenaste encriptada:

Código php:
Ver original
  1. if(sha1($password) == $passwordDB) {
  2.     echo "Contraseñas iguales";
  3. }

Un saludo y suerte !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.
  #5 (permalink)  
Antiguo 17/06/2011, 12:18
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: Registro de usuarios con PHP y seguridad HASH

estamos todos locos''?????
  #6 (permalink)  
Antiguo 17/06/2011, 12:40
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Registro de usuarios con PHP y seguridad HASH

También hay errores de sintaxis

Línea 34
Código PHP:
if (isset($_POST['username']) && (isset($_POST['password']))
// Debería ser:
if (isset($_POST['username']) && isset($_POST['password'])) 
Línea 56
Código PHP:
$checkuser mysql_query('SELECT usuario FROM usuarios 
    WHERE usuario='
$username'');
// Debería ser:
$checkuser mysql_query('SELECT usuario FROM usuarios 
    WHERE usuario='
.$username.''); 
Línea 58
Código PHP:
$checkemail mysql_query('SELECT email FROM usuarios 
    WHERE email='
$email'');
Debería ser:
$checkemail mysql_query('SELECT email FROM usuarios 
    WHERE email='
.$email.''); 
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #7 (permalink)  
Antiguo 17/06/2011, 14:35
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años
Puntos: 1
Respuesta: Registro de usuarios con PHP y seguridad HASH

por favor sigan me estoy inspirando cualquier cosa consulto otra vez
gracias
  #8 (permalink)  
Antiguo 17/06/2011, 14:51
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 9 meses
Puntos: 55
Respuesta: Registro de usuarios con PHP y seguridad HASH

pues por aqui va la cosa

Código PHP:
<?php
session_start
();
 
mysql_connect('localhost','XXXXXXXX','XXXXXXXX')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db("XXXXXXXX")or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function 
mostrar(){
echo
'<form action="registrar_sha1.php" method="post" name="1">
Usuario (max 20): 
  <input type="text" name="username" size="20" maxlength="20" /><br />
Password (max 10): 
<input type="password" name="password" size="10" maxlength="10" />
Confirma: <input type="password" name="password2" size="10" maxlength="10" /><br />
Nombre (max 20): 
  <input type="text" name="nombre" size="20" maxlength="20" /><br />
Apellido (max 20): 
  <input type="text" name="apellido" size="20" maxlength="20" /><br />  
Email (max 40): 
<input type="text" name="email" size="20" maxlength="40" /><br />
<input type="submit" onclick="return ec ();" value="Registrar" />
</form>'
;
}
function 
mostrar1(){
echo
'<FORM ACTION="validar_usuario.php" METHOD="post">
                  Usuario : <INPUT TYPE="text" NAME="usuario" SIZE=20 MAXLENGTH=20><br />
                  Password: <INPUT TYPE="password" NAME="password" SIZE=10 MAXLENGTH=10><br />
                  <INPUT TYPE="submit" VALUE="Ingresar">
                </FORM>'
;
}
?>
 
<?php
 
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST['username']) && isset($_POST['password'])) 
{
    
$username $_POST['username'];
    
$password $_POST['password'];
    
$cadena '478@€shdk%%';
    
$pass=$_POST['password'];
    
$hash=sha1($pass);
    
$password2 $_POST['password2'];
    
$nombre $_POST['nombre'];
    
$apellido $_POST['apellido'];
    
$email $_POST['email'];
    
// Hay campos en blanco
    
if($username==NULL||$password==NULL||$password2==NULL||$nombre==NULL||$apellido==NULL||$email==NULL) {
        echo 
'un campo está vacio.';
    
mostrar();
    }else{
        
// ¿Coinciden las contraseñas?
        
if($password!=$password2) {
            echo 
'Las contraseñas no coinciden';
            
mostrar();
        }else{
            
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
            
$checkuser mysql_query('SELECT usuario FROM usuarios WHERE usuario='.$username.'');
            
$username_exist mysql_num_rows($checkuser);
            
$checkemail mysql_query('SELECT email FROM usuarios WHERE email='.$email.'');
            
$email_exist mysql_num_rows($checkemail);
            if (
$email_exist>0||$username_exist>0) {
                echo 
'El nombre de usuario o la cuenta de correo estan ya en uso';
                
mostrar();
            }else{
                
$query 'INSERT INTO usuarios (usuario, password, nombre, apellido, email, hash, fecha)
                VALUES (\''
.$username.'\',\''.$password.'\',\''.$nombre.'\',\''.$apellido.'\',\''.$email.'\',\''.$hash.'\',\''.date("d-m-Y").'\')';
                
mysql_query($query);
                echo 
'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
                echo 
'Ahora puede entrar ingresando su usuario y su password <br />';
                
mostrar1();
                
?>
                
                <?php
            
}
        }
    }
}else{
mostrar();
}
?>
aunque yo en lo particular uso md5 y por otro lado si es para un sitio publico debes agregar mas seguridad
__________________
<?php echo "No te metas a lo hondo del Mar si no sabes nadar, primero aprende a nadar" ?>
...Error en linea: 1 o.O
  #9 (permalink)  
Antiguo 17/06/2011, 15:14
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años
Puntos: 1
Respuesta: Registro de usuarios con PHP y seguridad HASH

Cita:
Iniciado por Uncontroled_Duck Ver Mensaje
También hay errores de sintaxis

Línea 34
Código PHP:
if (isset($_POST['username']) && (isset($_POST['password']))
// Debería ser:
if (isset($_POST['username']) && isset($_POST['password'])) 
Línea 56
Código PHP:
$checkuser mysql_query('SELECT usuario FROM usuarios 
    WHERE usuario='
$username'');
// Debería ser:
$checkuser mysql_query('SELECT usuario FROM usuarios 
    WHERE usuario='
.$username.''); 
Línea 58
Código PHP:
$checkemail mysql_query('SELECT email FROM usuarios 
    WHERE email='
$email'');
Debería ser:
$checkemail mysql_query('SELECT email FROM usuarios 
    WHERE email='
.$email.''); 
Código PHP:
Ver original
  1. <?php
  2.  
  3. // verificamos si se han enviado ya las variables necesarias.
  4. if (isset($_POST['username']) && isset($_POST['password']))  
  5. {
  6.     $username = $_POST['username'];
  7.     $password = $_POST['password'];
  8.     $cadena = '478@€shdk%%';
  9.     $hash = sha1 ($password);
  10.     $password2 = $_POST['password2'];
  11.     $nombre = $_POST['nombre'];
  12.     $apellido = $_POST['apellido'];
  13.     $email = $_POST['email'];
  14.     // Hay campos en blanco
  15.     if($username==NULL||$password==NULL||$password2==NULL||$nombre==NULL||$apellido==NULL||$email==NULL) {
  16.         echo 'un campo está vacio.';
  17.     mostrar();
  18.     }else{
  19.         // ¿Coinciden las contraseñas?
  20.         if($password!=$password2) {
  21.             echo 'Las contraseñas no coinciden';
  22.             mostrar();
  23.     }else{
  24.         // ¿Son iguales las contraseñas?   
  25.         if(sha1($password) == $passwordDB) {
  26.             echo 'Contraseñas iguales';
  27.             mostrar();
  28.     }else{ 
  29.             // Comprobamos si el nombre de usuario o la cuenta de correo ya existían
  30.             $checkuser = mysql_query('SELECT usuario FROM usuarios WHERE usuario='.$username.'');
  31.             $username_exist = mysql_num_rows($checkuser);
  32.             $checkemail = mysql_query('SELECT email FROM usuarios WHERE email='.$email.'');
  33.             $email_exist = mysql_num_rows($checkemail);
  34.             if ($email_exist>0||$username_exist>0) {
  35.                 echo 'El nombre de usuario o la cuenta de correo estan ya en uso';
  36.                 mostrar();
  37.             }else{
  38.                 $query = 'INSERT INTO usuarios (usuario, password, nombre, apellido, email, hash, fecha)
  39.                 VALUES (\''.$username.'\',\''.$password.'\',\''.$nombre.'\',\''.$apellido.'\',\''.$email.'\',\''.$hash.'\',\''.date("d-m-Y").'\')';
  40.                 mysql_query($query);
  41.                 echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
  42.                 echo 'Ahora puede entrar ingresando su usuario y su password <br />';
  43.                 mostrar1();
  44.                 ?>
  45.                
  46.                 <?php
  47.             }
  48.         }
  49.     }
  50. }else{
  51. mostrar();
  52. }
  53. ?>

como voy por ahi amigos, lo unico malo es que sigo sin poder ver el formulario en el browser ( no lo muestra)
  #10 (permalink)  
Antiguo 17/06/2011, 16:13
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Registro de usuarios con PHP y seguridad HASH

No puedes ir pegando código y poniendo donde quede más bonito.

Código PHP:
if(sha1($password) == $passwordDB) { 
Esta línea es para hacer una comparación entre dos contraseñas, la que hay en la DB y la que mandas con el form de validación.

Y para eso debe haber antes una consulta donde saques esos datos de la DB y lo pongas en la variable $passwordDB... Si no es como intentar mandar un mail con un donuts, por mucho que lo intentes, no va a salir nada.

Otra cosa, intenta comparar los códigos, ver los cambios e intentar comprender como funciona.

A ver, con esto debería valer:
Código PHP:
// Aquí van las funciones que tienes.
<?php
 
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST['username']) && isset($_POST['password'])) {

    
$username    $_POST['username'];
    
$password    $_POST['password'];
    
$password2    $_POST['password2'];
    
$nombre        $_POST['nombre'];
    
$apellido    $_POST['apellido'];
    
$email        $_POST['email'];
    
    
$cadena '478@€shdk%%';
    
$pass     sha1($password); // Encriptas la contraseña
    
    // Hay campos en blanco
    
if($username == NULL || $password == NULL || $password2 == NULL || $nombre == NULL || $apellido == NULL || $email == NULL) {
        
        echo 
'Un campo está vacio.';
        
mostrar();
    
    } else {
        
        
// ¿Coinciden las contraseñas?
        
if($password != $password2) {
            
            echo 
'Las contraseñas no coinciden';
            
mostrar();
        
        } else {
            
            
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
            
$checkuser mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
            
$username_exist mysql_num_rows($checkuser);
            
$checkemail mysql_query("SELECT email FROM usuarios WHERE email='$email'");
            
$email_exist mysql_num_rows($checkemail);
            
            if (
$email_exist || $username_exist 0) {
                
                echo 
'El nombre de usuario o la cuenta de correo estan ya en uso';
                
mostrar();
                
            } else {
                
                
$query 'INSERT INTO usuarios (usuario, password, nombre, apellido, email, fecha)
                VALUES (\''
.$username.'\',\''.$pass.'\',\''.$nombre.'\',\''.$apellido.'\',\''.$email.'\',\''.date("d-m-Y").'\')';
                
mysql_query($query) or die ('Ha fallado la entrada de datos'); // Si falla nos avisa.
                
echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
                echo 
'Ahora puede entrar ingresando su usuario y su password <br />';
                
mostrar1();
                
?>
                
                <?php
            
}
        }
    }
    
} else {
    
    
mostrar();

}

?>
PD.: Con el code un poco más desplegado se hace más sencilla la lectura.
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #11 (permalink)  
Antiguo 20/06/2011, 09:54
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años
Puntos: 1
Respuesta: Registro de usuarios con PHP y seguridad HASH

Cita:
Iniciado por Uncontroled_Duck Ver Mensaje
No puedes ir pegando código y poniendo donde quede más bonito.

Código PHP:
if(sha1($password) == $passwordDB) { 
Esta línea es para hacer una comparación entre dos contraseñas, la que hay en la DB y la que mandas con el form de validación.

Y para eso debe haber antes una consulta donde saques esos datos de la DB y lo pongas en la variable $passwordDB... Si no es como intentar mandar un mail con un donuts, por mucho que lo intentes, no va a salir nada.

Otra cosa, intenta comparar los códigos, ver los cambios e intentar comprender como funciona.

A ver, con esto debería valer:
Código PHP:
// Aquí van las funciones que tienes.
<?php
 
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST['username']) && isset($_POST['password'])) {

    
$username    $_POST['username'];
    
$password    $_POST['password'];
    
$password2    $_POST['password2'];
    
$nombre        $_POST['nombre'];
    
$apellido    $_POST['apellido'];
    
$email        $_POST['email'];
    
    
$cadena '478@€shdk%%';
    
$pass     sha1($password); // Encriptas la contraseña
    
    // Hay campos en blanco
    
if($username == NULL || $password == NULL || $password2 == NULL || $nombre == NULL || $apellido == NULL || $email == NULL) {
        
        echo 
'Un campo está vacio.';
        
mostrar();
    
    } else {
        
        
// ¿Coinciden las contraseñas?
        
if($password != $password2) {
            
            echo 
'Las contraseñas no coinciden';
            
mostrar();
        
        } else {
            
            
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
            
$checkuser mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
            
$username_exist mysql_num_rows($checkuser);
            
$checkemail mysql_query("SELECT email FROM usuarios WHERE email='$email'");
            
$email_exist mysql_num_rows($checkemail);
            
            if (
$email_exist || $username_exist 0) {
                
                echo 
'El nombre de usuario o la cuenta de correo estan ya en uso';
                
mostrar();
                
            } else {
                
                
$query 'INSERT INTO usuarios (usuario, password, nombre, apellido, email, fecha)
                VALUES (\''
.$username.'\',\''.$pass.'\',\''.$nombre.'\',\''.$apellido.'\',\''.$email.'\',\''.date("d-m-Y").'\')';
                
mysql_query($query) or die ('Ha fallado la entrada de datos'); // Si falla nos avisa.
                
echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
                echo 
'Ahora puede entrar ingresando su usuario y su password <br />';
                
mostrar1();
                
?>
                
                <?php
            
}
        }
    }
    
} else {
    
    
mostrar();

}

?>
PD.: Con el code un poco más desplegado se hace más sencilla la lectura.


primero que todo agradezco mucho tu voluntad...

ahora si puedo ver el formulario de registro en el browser, hago el registro de usuario y lo registra perfecto con la contraseña encriptada :) yijuuuu!!!
------------------------------------------------------------------------------------------------------------------
aquí esta lo que mencionabas antes,
"
Código PHP:
if(sha1($password) == $passwordDB) { 
Esta línea es para hacer una comparación entre dos contraseñas, la que hay en la DB y la que mandas con el form de validación."

me quedo algo así

Código PHP:
<?php
       mysql_connect
('localhost','xxxxxxxx','xxxxxxxx');
       
mysql_select_db("xxxxxxxx");
       
$usuario strtolower($_POST["usuario"]);
       
$password $_POST["password"];
    if(
$usuario!= "" && $password!= "")
{
    
$sql mysql_query('SELECT password, usuario FROM usuarios WHERE usuario="'.$usuario.'"');
    if(
$fmysql_fetch_array($sql)) {
    
// Aquí pegue la línea que hace la comparación entre dos contraseñas.
    
if(sha1($password) == $passwordDB) { 
       
$_SESSION["k_username"] = $f['usuario'];
            echo 
'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
            echo 
'<a href="XXXXX.php">Entrar a XXXXXXX</a></p>';
        
          }else{
            echo 
'Contraseña incorrecta';
            echo 
'<a href="index.php">Inicio</a></p>';
        }
          }else{
            echo 
'Usuario no existente en la base de datos ';
            echo 
'<a href="index.php">Inicio</a></p>';
    }
    
}

?>
nuevamente gracias por tu ayuda

Última edición por gonzaloaedo; 20/06/2011 a las 10:17
  #12 (permalink)  
Antiguo 20/06/2011, 12:13
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Registro de usuarios con PHP y seguridad HASH

Me alegra que te funcione bien.

Ahora si me cuadra más el tema de la comparación, en el otro code, al ver las variables sin consulta antes, no tenía sentido.

Pues listo, a seguir programando y aprendiendo.

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #13 (permalink)  
Antiguo 22/06/2011, 09:39
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años
Puntos: 1
Respuesta: Registro de usuarios con PHP y seguridad HASH

Hola otra vez

Resulta que ya subí el archivo de validación, al loguearme me dice que la Contraseña es incorrecta, no se en que podre estar fallando nuevamente

Código PHP:
<?php
       mysql_connect
('localhost','xxxxxxxx','xxxxxxxx');
       
mysql_select_db("xxxxxxxx");
       
$usuario strtolower($_POST["usuario"]);
       
$password $_POST["password"];
    if(
$usuario!= "" && $password!= "")
{
    
$sql mysql_query('SELECT password, usuario FROM usuarios WHERE usuario="'.$usuario.'"');
    if(
$fmysql_fetch_array($sql)) {
    
// Aquí pegue la línea que hace la comparación entre dos contraseñas.
    
if(sha1($password) == $passwordDB) { 
       
$_SESSION["k_username"] = $f['usuario'];
            echo 
'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
            echo 
'<a href="XXXXX.php">Entrar a XXXXXXX</a></p>';
        
          }else{
            echo 
'Contraseña incorrecta';
            echo 
'<a href="index.php">Inicio</a></p>';
        }
          }else{
            echo 
'Usuario no existente en la base de datos ';
            echo 
'<a href="index.php">Inicio</a></p>';
    }
    
}

?>
nuevamente muchas gracias amigo

Etiquetas: hash, registro, seguridad, sha1, 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 04:41.