Ver Mensaje Individual
  #8 (permalink)  
Antiguo 17/06/2011, 14:51
johhan16
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 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