Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: Pirat3net en 18 Octubre 2012, 18:13 pm



Título: codigo con fallo excondido
Publicado por: Pirat3net en 18 Octubre 2012, 18:13 pm


bueno este es el procesado del fromulario, el codigo se ejecuta hasta el final sin embargo en el ultimo if , cuando se ejecuta la querry para guardar los registros en la base de datos, pues muestra el mensaje avisando de que no no puede hacerlo , y no veo el problema, cuando le puse un or die() para ver que me decia , decia que en en una columna y una fila, el registro valia uno :S

Código
  1. <?php
  2.  
  3.  
  4. $current_time = date ("Y-m-d H:i:s");  
  5. $user=$_POST['user'];
  6. $nombre=$_POST['nombre'];
  7. $pass=$_POST['pass'];
  8. $eMail=$_POST['eMail'];
  9.  
  10.  
  11.  
  12. $user=trim($user);
  13. $pass=trim($pass);
  14. $nombre=trim($nombre);
  15. $eMail=trim($eMail);
  16.  
  17. //restricciones para el formulario
  18. if (!$user || !$nombre ||!$pass || !$eMail ||
  19. strlen($user)>15 || strlen($nombre)>50 || strlen($pass)>25  || strlen($eMail)>40 ||
  20. strlen($user)<3 || strlen($nombre)<3|| strlen($pass)<5|| strlen($eMail)<9){
  21. echo 'los siguientes datos sonn incorrectos <br>';
  22. if( !$user){
  23. echo 'el nombre de usuario no puede estar vacio; <br>';
  24. }
  25. if( !$nombre){
  26. echo 'su niombre real no puede estar vacio; <br>';
  27. }  
  28. if( !$pass){
  29. echo 'la pass no puede estar vacia <br>';
  30. }  
  31. if( !$eMail){
  32. echo 'el campo mail no puede estar vacio; <br>';
  33. }  
  34.  
  35.  
  36. if( strlen($user)>15 || strlen($user)<4){
  37. echo 'su nombre de usuario debe valer entre 15 y 5 caraacteres; <br>';
  38. }
  39. if( strlen($nombre)>50 || strlen($nombre)<3 ){
  40. echo 'su nombre debe valer entre 50 y 4 caraacteres; <br>';
  41. }
  42. if( strlen($pass)>25 || strlen($pass)<5){
  43. echo 'la contraseña debe valer entre 25 y 5 caraacteres; <br>';
  44. }
  45. if( strlen($eMail)>40|| strlen($eMail)<9){
  46. echo 'el mail debe valer entre 39 y 10 caraacteres; <br>';
  47. }
  48.  
  49. echo' paara continuar con el registro ,vuelva atras y arregle los datos incorrectos.<br>';
  50.  
  51. }
  52.  
  53.  
  54. else{
  55.  
  56.  
  57.  
  58.  
  59. //mostrando datos introducidos
  60. echo $current_time."<br>";
  61. echo $user."<br>";
  62. echo $pass."<br>";
  63. echo $nombre."<br>";
  64. echo $eMail."<br>";
  65.  
  66.  
  67.  
  68.  
  69.       $link = mysql_connect("xxxxxxxxxx","xxxxxxxxx","xxxxxxxxx");
  70. mysql_select_db("a6190584_data",$link) or die("error eligiendo database");
  71.  
  72. $consulta = "INSERT INTO usuarios (user,nombre,pass,fechacreacion,conectad,eMail)
  73. VALUES ('$user','$nombre','$pass','$eMail','$current_time','0',NOW())" ;
  74.  
  75. if(mysql_query($consulta, $link)){
  76.  $sucess = TRUE;
  77. }else{
  78.  $sucess = FALSE;
  79. }
  80.  
  81. if($sucess){
  82.  echo "el registro ha finalizado satisfactoriamente.";
  83. }
  84. else{
  85. mysql_query($consulta, $link) ;
  86. echo "hemos tenido problemas,vuelva a intentarlo o pongase en contacto con nosotros a traves de nuestro canal de twitter o facebook";
  87. }
  88. }
  89. ?>

aqui la tabla





Código
  1. CREATE TABLE IF NOT EXISTS `usuarios` (
  2. `idUsuario` INT(11) NOT NULL AUTO_INCREMENT,
  3.  `user` VARCHAR(15) NOT NULL,
  4. `nombre` VARCHAR(50) NOT NULL,
  5. `pass` VARCHAR(25) NOT NULL,
  6. `fechacreacion` VARCHAR(25) NOT NULL,
  7.  `conectado` INT(1) NOT NULL,
  8.  `e-mail` VARCHAR(25) NOT NULL,
  9.  PRIMARY KEY  (`idUsuario`))

si alguien encuentra que es lo que falla se lo agradecere.he puesto, he quitado, he cambiado, pero no hay manera de que esta tire palante, lo gracioso es que es un codigo que ya habia usado solo cambie el formulario, las variables pero vamos que no se que pasa. gracias


Título: Re: codigo con fallo excondido
Publicado por: HdM en 18 Octubre 2012, 18:34 pm
Hola.

En la consulta de inserción estás poniendo nombres de campos (conectad,eMail), que no coinciden con los indicados en la creación de la tabla.

También en la consulta intentas pasar más valores (7 valores para 6 campos) y en distinto orden a como están indicados los campos a grabar en el insert.

Saludos.