Foros del Web » Programando para Internet » PHP »

Registro y validación de usuarios con hash

Estas en el tema de Registro y validación de usuarios con hash en el foro de PHP en Foros del Web. Hola amigos estoy trabajando en un formulario de Registro y validación de usuarios con hash y tengo algunos inconvenientes. El formulario de registro funciona perfecto ...
  #1 (permalink)  
Antiguo 11/07/2011, 11:16
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
Registro y validación de usuarios con hash

Hola

amigos estoy trabajando en un formulario de Registro y validación de usuarios con hash y tengo algunos inconvenientes.

El formulario de registro funciona perfecto me encripta la CONTRASEÑA y queda bien en la base de datos pero cuando quiero loguearme me dice que la contraseña es incorrecta, me imagino que es porque al momento de loguearme se envía la clave sin encriptar y al pasar por validar_usuario.php y hacer la comparación de password arroja error en el password claro está por que al comparar la clave que envié desde el login no esta encriptada y la de la base de datos si lo está y por logica no me deja entrar.... de esta forma lo entiendo yo

Mi pregunta es, ¿qué es lo que debo hacer?, en que estoy mal, me pueden ayudar por favor.

Aquí los códigos que estoy ocupando

registrar.php
Código PHP:
<?php
session_start
();

mysql_connect('xxxxxxxx','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.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" value="Registrar" />
</form>'
;

//---------------- en algún video de registro de usuarios en youtube vi que en alguna parte de este código en la parte de password -------
//---------------- colocaban un hash de manera que cuando la base de datos lo recibe y lo compara lo deja pasar si es que la clave es correcta
}
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=50><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'];
    
$password2   $_POST['password2'];
    
$nombre      $_POST['nombre'];
    
$apellido    $_POST['apellido'];
    
$email       $_POST['email'];
    
    
$cadena '478@€shdk%%';
    
$passsha1($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();

}

?>
validar_usuario.php
Código PHP:
<?php

//--------------este es el script que me permite validar al usuario ( validar_usuario.php ) 
       
mysql_connect('xxxxxxxx','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)){
        if(
sha1($password) == $passwordDB) { 
            
$_SESSION["k_username"] = $f['usuario'];
            echo 
'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
            echo 
'<a href="index.php">Index</a></p>';
        
        }else{
            echo 
'Password incorrecto';
            echo 
'<a href="index.php">Index</a></p>';
        }
    }else{
        echo 
'Usuario no existente en la base de datos ';
        echo 
'<a href="index.php">Index</a></p>';
    }
    
}

?>
gracias a todos espero sus respuestas
  #2 (permalink)  
Antiguo 11/07/2011, 11:22
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: Registro y validación de usuarios con hash

no veo por ningun lado que asignes un valor a la variable $passwordDB o.o
  #3 (permalink)  
Antiguo 11/07/2011, 11:23
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Registro y validación de usuarios con hash

En el código se ve que usas $passwordDB, pero, ¿donde defines su valor?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 11/07/2011, 11:23
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
y como hago eso amigo?

Cita:
Iniciado por darkasecas Ver Mensaje
no veo por ningun lado que asignes un valor a la variable $passwordDB o.o
y como hago eso????

Última edición por GatorV; 11/07/2011 a las 11:40
  #5 (permalink)  
Antiguo 11/07/2011, 11:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Registro y validación de usuarios con hash

Suponiendo que en $f tienes los valores de la consulta:
Código PHP:
$passwordDB $f['password']; 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 11/07/2011, 11:48
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por darkasecas Ver Mensaje
no veo por ningun lado que asignes un valor a la variable $passwordDB o.o
Cita:
Iniciado por pateketrueke Ver Mensaje
Suponiendo que en $f tienes los valores de la consulta:
Código PHP:
$passwordDB $f['password']; 
y en donde coloco este codigo??

la verdad es que me a costado mucho construir estos formularios, cortar y pegar de por aquí y por allá y e obtenido esto cn una cantidad de ensallo y error que no te imaginas si pudieras ser mas especifico por favor e undicarme donde coloco el codigo

se agradece mucho tu ayuda
  #7 (permalink)  
Antiguo 11/07/2011, 11:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por gonzaloaedo Ver Mensaje
y en donde coloco este codigo??

la verdad es que me a costado mucho construir estos formularios, cortar y pegar de por aquí y por allá y e obtenido esto cn una cantidad de ensallo y error que no te imaginas si pudieras ser mas especifico por favor e undicarme donde coloco el codigo

se agradece mucho tu ayuda
Eso es lo malo de aprender a la mala, la prueba y el error no sirven de mucho.

También hay que leer, y digerir lo que se plantea.

No todo es código, también es pensamiento.

Y bueno... ¿conoces el sentido común?

¿En que punto de tu código deberías definir dicha variable?

Piensa que la usas en algún punto de tu script, por eso deberías definirla antes de ese punto.

Pero también piensa que al definirla hace uso de otra variable, así que deberías definirla después de dicho punto.

¿Donde debería ir entonces?

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 11/07/2011, 12:02
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por pateketrueke Ver Mensaje
Eso es lo malo de aprender a la mala, la prueba y el error no sirven de mucho.

También hay que leer, y digerir lo que se plantea.

No todo es código, también es pensamiento.

Y bueno... ¿conoces el sentido común?

¿En que punto de tu código deberías definir dicha variable?

Piensa que la usas en algún punto de tu script, por eso deberías definirla antes de ese punto.

Pero también piensa que al definirla hace uso de otra variable, así que deberías definirla después de dicho punto.

¿Donde debería ir entonces?

una pregunta mas antes de responder la tuya, en cual de los dos codigos en registrar.php o validar_usuario.php???
  #9 (permalink)  
Antiguo 11/07/2011, 12:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por gonzaloaedo Ver Mensaje
una pregunta mas antes de responder la tuya, en cual de los dos codigos en registrar.php o validar_usuario.php???
Ahora veo que sigues sin pensar ni un poco.

Responde por ti mismo, ¿en cual de los dos códigos estás comprobando la contraseña?

¿En cual de los dos códigos es que tienes el problema del que habla tu tema?

Mejor aún, ¿en cual de los dos códigos usas la variable $passwordDB?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 11/07/2011, 13:44
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por pateketrueke Ver Mensaje
Ahora veo que sigues sin pensar ni un poco.

Responde por ti mismo, ¿en cual de los dos códigos estás comprobando la contraseña?

¿En cual de los dos códigos es que tienes el problema del que habla tu tema?

Mejor aún, ¿en cual de los dos códigos usas la variable $passwordDB?
ME QUEDO ALGO ASÍ, pero sigue diciendo que la contraseña es incorrecta

Código PHP:
?>
         <?php
    mysql_connect
('xxxxxxxx','xxxxxxxx','xxxxxxxx');
    
mysql_select_db("xxxxxxxx");

    
$usuario strtolower($_POST["usuario"]);
    
$password $_POST["password"];
    
$passwordDB $f['password'];
    if(
$usuario!= "" && $password!= "")
{
    
$sql mysql_query('SELECT password, usuario FROM usuarios WHERE usuario="'.$usuario.'"');
    if(
$fmysql_fetch_array($sql)){
    if(
sha1($password) == $passwordDB) {
            
$_SESSION["k_username"] = $f['usuario'];
            echo 
'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
            echo 
'<a href="ma_corp_cl.php">Entrar a Manuales</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>';
    }
    
}

?>
  #11 (permalink)  
Antiguo 11/07/2011, 13:55
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Registro y validación de usuarios con hash

Esta mal tu código amigo, ya que sigues definiendo $passwordBD
Código PHP:
$passwordDB $f['password']; 
antes de la linea donde defines $f
Código PHP:
if($fmysql_fetch_array($sql)){ 
y bueno, eso no tiene nada de sentido.

De verdad, intenta razonar un poco lo que te digo, lo tienes frente a ti pero no lo quieres ver.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 12/07/2011, 10:29
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por darkasecas Ver Mensaje
no veo por ningun lado que asignes un valor a la variable $passwordDB o.o
Código PHP:
?>
         <?php
    mysql_connect
('xxxxxxxx','xxxxxxxx','xxxxxxxx');
    
mysql_select_db("xxxxxxxx");

    
$usuario strtolower($_POST["usuario"]);
    
$password $_POST["password"];
    
$passwordDB $f['password'];
    if(
$usuario!= "" && $password!= "")
{
    
$sql mysql_query('SELECT password, usuario FROM usuarios WHERE usuario="'.$usuario.'"');
    if(
$fmysql_fetch_array($sql)){
    if(
sha1($password) == $passwordDB) {
            
$_SESSION["k_username"] = $f['usuario'];
            echo 
'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
            echo 
'<a href="ma_corp_cl.php">Entrar a Manuales</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>';
    }
    
}

?>

QUE OPINAS TU AMIGO, me sigue arrojando la contraseña es incorrecta
  #13 (permalink)  
Antiguo 12/07/2011, 10:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por gonzaloaedo Ver Mensaje
[...] QUE OPINAS TU AMIGO, me sigue arrojando la contraseña es incorrecta
Que mala educación, ¿osea que sigues haciendo lo mismo y esperas obtener resultados diferentes?

Ya te comenté en mi mensaje anterior lo que haces mal, pero mientras sigas sin atender no vas a poder solucionar nada.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 12/07/2011, 10:31
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 8 meses
Puntos: 77
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por gonzaloaedo Ver Mensaje
QUE OPINAS TU AMIGO, me sigue arrojando la contraseña es incorrecta
opino lo mismo que pateketrueke en el mensaje # 11, te esta diciendo todo lo que necesitas solo hay que razonar y usar un poco de logica. :|
  #15 (permalink)  
Antiguo 12/07/2011, 10:38
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por pateketrueke Ver Mensaje
Que mala educación, ¿osea que sigues haciendo lo mismo y esperas obtener resultados diferentes?

Ya te comenté en mi mensaje anterior lo que haces mal, pero mientras sigas sin atender no vas a poder solucionar nada.
mmm lo cinto amigo pero no estudie programación, mi área es el diseño grafico, y además soy autodidacta pero de verdad no me gusta la programación para nada,
me animo mas con flash - photoshop - dreamweaver - fireworks - premiere - after effects - audition - ilustrator - corel draw - corel photo paint - y otro monton de trukillos bajo la manga, pero de verdad esto de la programación me da dolor de cabeza...........
gracias de todas forma por la ayuda y sigan así
  #16 (permalink)  
Antiguo 12/07/2011, 10:45
 
Fecha de Ingreso: marzo-2011
Mensajes: 68
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: Registro y validación de usuarios con hash

Si no te gusta no te dediques a eso
  #17 (permalink)  
Antiguo 12/07/2011, 10:47
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por FFabre Ver Mensaje
Si no te gusta no te dediques a eso
quien pateo la jaula del mono?
  #18 (permalink)  
Antiguo 12/07/2011, 10:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por gonzaloaedo Ver Mensaje
quien pateo la jaula del mono?
Perdón, no quería que te salieras sin permiso.

Y es verdad, entiende, el interés de los usuarios del foro es aprender programación.

Si no tienes interés no se que haces aquí, es lo mínimo que se pide cuando se consulta en un foro de programación.

Ahora, ¿que no te gusta hacerlo, no quieres aprender y debes tenerlo listo a la brevedad?

Pues contrata a alguien para que lo haga por ti, y te ahorras la vergüenza.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #19 (permalink)  
Antiguo 12/07/2011, 10:52
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por pateketrueke Ver Mensaje
Perdón, no quería que te salieras sin permiso.

Y es verdad, entiende, el interés de los usuarios del foro es aprender programación.

Si no tienes interés no se que haces aquí, es lo mínimo que se pide cuando se consulta en un foro de programación.

Ahora, ¿que no te gusta hacerlo, no quieres aprender y debes tenerlo listo a la brevedad?

Pues contrata a alguien para que lo haga por ti, y te ahorras la vergüenza.
¬¬ estas de abogado?
  #20 (permalink)  
Antiguo 12/07/2011, 10:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Registro y validación de usuarios con hash

Es simple, a ver si más pintado lo ves:
Código PHP:
Ver original
  1. // Aqui defines y envias el query para checar el usuario
  2. $sql = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario="'.$usuario.'"');
  3.  
  4. // Aqui regresas el resultado, antes de este punto $f no existe ya que apenas la vas a asignar
  5. // mediante $f = mysql_fetch...
  6.     if($f= mysql_fetch_array($sql)){
  7.  
  8. // Aqui es donde compruebas que el password que envio el usuario del formulario ($password)
  9. // sea igual al de la base de datos ($passwordDB), pero en este punto no existe $passwordDB
  10. // tienes que definirla antes, y como te dicen tienes que definirla de $f['password']; que es el
  11. // resultado de la DB.
  12.     if(sha1($password) == $passwordDB) {

Ahora viendo esa explicación, ¿donde se te hace más logico que deba de ir la asignación de $passwordDB = $f['password']?
  #21 (permalink)  
Antiguo 12/07/2011, 10:54
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Registro y validación de usuarios con hash

de todas formas gracias se que sus intenciones son ayudar y se valora mucho

bye!
  #22 (permalink)  
Antiguo 12/07/2011, 10:58
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por GatorV Ver Mensaje
Es simple, a ver si más pintado lo ves:
Código PHP:
Ver original
  1. // Aqui defines y envias el query para checar el usuario
  2. $sql = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario="'.$usuario.'"');
  3.  
  4. // Aqui regresas el resultado, antes de este punto $f no existe ya que apenas la vas a asignar
  5. // mediante $f = mysql_fetch...
  6.     if($f= mysql_fetch_array($sql)){
  7.  
  8. // Aqui es donde compruebas que el password que envio el usuario del formulario ($password)
  9. // sea igual al de la base de datos ($passwordDB), pero en este punto no existe $passwordDB
  10. // tienes que definirla antes, y como te dicen tienes que definirla de $f['password']; que es el
  11. // resultado de la DB.
  12.  
  13.     if(sha1($password) == $passwordDB) {

Ahora viendo esa explicación, ¿donde se te hace más logico que deba de ir la asignación de $passwordDB = $f['password']?

Por fin alguien que sabe cómo explicar las cosas con mas detalle de eso se trata esto creo yo
y no de ayudar haciendo adivinanzas, nadie nació siendo adivino.

gracias GatorV
  #23 (permalink)  
Antiguo 12/07/2011, 11:23
 
Fecha de Ingreso: marzo-2011
Mensajes: 31
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Registro y validación de usuarios con hash

Cita:
Iniciado por GatorV Ver Mensaje
Es simple, a ver si más pintado lo ves:
Código PHP:
Ver original
  1. // Aqui defines y envias el query para checar el usuario
  2. $sql = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario="'.$usuario.'"');
  3.  
  4. // Aqui regresas el resultado, antes de este punto $f no existe ya que apenas la vas a asignar
  5. // mediante $f = mysql_fetch...
  6.     if($f= mysql_fetch_array($sql)){
  7.  
  8. // Aqui es donde compruebas que el password que envio el usuario del formulario ($password)
  9. // sea igual al de la base de datos ($passwordDB), pero en este punto no existe $passwordDB
  10. // tienes que definirla antes, y como te dicen tienes que definirla de $f['password']; que es el
  11. // resultado de la DB.
  12.     if(sha1($password) == $passwordDB) {

Ahora viendo esa explicación, ¿donde se te hace más logico que deba de ir la asignación de $passwordDB = $f['password']?
Código PHP:
         <?php
session_start
();
?>
         <?php
    mysql_connect
('xxxxxxxxx','xxxxxxxxx','xxxxxxxxx');
    
mysql_select_db("xxxxxxxxx");

    
$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)){
    
$passwordDB $f['password'];
    if(
sha1($password) == $passwordDB) {

            
$_SESSION["k_username"] = $f['usuario'];
            echo 
'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
            echo 
'<a href="xxxxxxxxx.php">Entrar a Manuales</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>';
    }
    
}

?>
Ahora funciona full HD graciassss totales! Chicos!
  #24 (permalink)  
Antiguo 12/07/2011, 11:25
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Registro y validación de usuarios con hash

Cita:
Por fin alguien que sabe cómo explicar las cosas con mas detalle de eso se trata esto creo yo y no de ayudar haciendo adivinanzas, nadie nació siendo adivino.
No es andar haciendo adivinanzas. En realidad es lo mismo que si estuvieses en clase: Se trata de enseñarte a razonar la solución, porque el mismo razonamiento lo tendrás que usar en muchas partes. Si simplemente copias y pegas sin saber qué hace, por qué se hace así y para qué sirve, en realidad habrás fracasado, porque volverás a tropezar con lo mismo, en otras formas.
Al tratar de llevarte a las conclusiones por tí mismo con un poco de guía, lo que hacen todos (yo también) es usar la misma pedagogía que usaron con nosotros las maestras de la escuela primaria, los profesores de la escuela secundaria, y en algunos casos los de la universidad. Ni más, ni menos.
¿Por qué hacerlo tan "difícil"?
Por la mas simple de las razones: Para que no tengas que tropezar cien veces con las mismas piedras.
Ten paciencia. Lee con atención. Trata de razonar y deducir lo que te plantean y por sobre todas las cosas trata de ser tan humilde al pedir y contestar, como tu mismo exigirías que sea aquel que no sabe de diseño gráfico y te pide que le expliques cómo se hace un banner o un afiche, las cosas en que tu eres experto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: hash, registro, usuarios, validar
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 23:54.