Ver Mensaje Individual
  #17 (permalink)  
Antiguo 09/10/2011, 05:14
Avatar de Uncontroled_Duck
Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 13 años, 6 meses
Puntos: 261
Respuesta: problema con la contraseña encriptada

Buenas, como apunta kiko's, debería replantear un poco antes que quieres conseguir, para que te resulte más sencillo estructurar el script.

He realizado pequeños cambios y he puesto algunas notas.

Echa un vistazo, no es para que copies y pegues!! es para que compares los cambios e intentes entender el porqué de cada una de las partes y como reacciona el script en función de los datos que recibe.

No lo he probado! así que no se si funciona, pero te puede aportar una de tantas ideas para conseguir el mismo resultado.

Código PHP:
Ver original
  1. <?php
  2. //db
  3. $sitio = "localhost";
  4. $usuario = "kfernandez92";
  5. $pass = "brothers";
  6. $base = "kfernandez";
  7. $con = mysql_connect($sitio, $usuario, $pass);
  8.  
  9. //post
  10. $name = $_POST["name"];
  11. $surname = $_POST["surname"];
  12. $date = $_POST["date"];
  13. $email = $_POST["email1"];
  14. $email2 = $_POST["email2"];
  15. $password1 = $_POST["password1"];
  16. $password2 = $_POST["password2"];
  17. $alias = $_POST["alias"];
  18.  
  19. //pass
  20. $secret1 = 'JHgv67UgyGY6ugYG786';
  21. $secret2 = 'UFHAHhagdgdfftfstg5';
  22. // distingue los pass que vienen por POST y los que asignas hash
  23. // para cambios futuros te resutará más sencillo reescribir el script
  24. $hashPassword1 = md5($secret1 . $password1);
  25. $hashPassword2 = md5($secret2 . $password2);
  26.  
  27. if( mysql_select_db($base, $con) )
  28. {
  29.     // Pones en true Pass y Mail
  30.     $passw = true;
  31.     $mail = true;
  32.     // el password2 creo que sobra en la DB
  33.     $consulta = "insert into web values ('$name','$surname','$date','$email','$hashPassword1', '$email2','$hashPassword2','$alias')";
  34.    
  35.     // Arriba ya has asignado el valor a las variables!!
  36.     //if( $_POST['password1'] != $_POST['password2'] )
  37.     if( $password1 != $password2 )
  38.     {
  39.         echo 'Los campos de contraseña no coinciden...!';
  40.         $passw = false;
  41.     }
  42.    
  43.     // Antes de esto deberías comprobar si ya existe el mail en la DB
  44.     // Arriba ya has asignado el valor a las variables!!
  45.     //if( $_POST['email1'] != $_POST['email2'] )
  46.     if( $email != $email2 )
  47.     {
  48.         echo 'Los emails no coinciden!';
  49.         $mail = false;
  50.     }
  51.    
  52.     // Si falla $pass o $mail pone en false una de las dos variables.
  53.     // por lo que no debería pasar el if
  54.     if( $pass && $mail )
  55.     {
  56.         // si da error la query imprimirá los datos para localizarlo,
  57.         // o puedes guardarlo en la DB para revisarlo a posteriori
  58.         try
  59.         {
  60.             mysql_query($consulta, $con);
  61.         }
  62.         catch( Exception $exc )
  63.         {
  64.             echo 'Ha ocurrido un error al insertar los datos';
  65.             echo $exc->getTraceAsString();
  66.         }
  67.  
  68.         echo "El usuario ha sido registrado correctamente";
  69.     }
  70. }
  71. else
  72. {
  73.     echo mysql_error($con);
  74. }
  75.  
  76. { // <- Estas dos llaves para que?  
  77. } // <-
  78. ?>
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight