Ver Mensaje Individual
  #10 (permalink)  
Antiguo 17/06/2011, 16:13
Avatar de Uncontroled_Duck
Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años, 10 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