PHP - Los datos no se ingresan a la BD

   
Vista:

Los datos no se ingresan a la BD

Publicado por Vale (9 intervenciones) el 26/01/2015 19:55:22
Hola. Buenos dias, tengo una duda/problema. Cree una pagina y funciona de maravilla, solo que ahora quise hacer una pagina para que los usuarios puedan poner sus datos personales. La pagina carga el formulario, ningun error todo perfecto, es una pagina restringida, es decir que los usuarios logueados solo pueden verlas. Bien aca el problema. Al presionar enviar para mandar los datos, todo carga bien, solo que al fijarme en la BD los datos no se cargaron. Les dejo los archivos para que puedan ayudarme. Muchisimas gracias.

-Base de datos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
CREATE TABLE `usuarios` (
    `usuario_id` int(4) NOT NULL AUTO_INCREMENT,
    `usuario_nombre` varchar(15) NOT NULL DEFAULT '',
    `usuario_clave` varchar(32) NOT NULL DEFAULT '',
    `usuario_email` varchar(50) NOT NULL DEFAULT '',
    `usuario_freg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    `usuario_sexo` varchar(15) NOT NULL DEFAULT '',
	`usuario_edad` varchar(15) NOT NULL DEFAULT '',
    `usuario_nacionalidad` varchar(15) NOT NULL DEFAULT '',
	`extras_intereses` varchar(400) NOT NULL DEFAULT '',
	`extras_condiciones_pelo` varchar(200) NOT NULL DEFAULT '',
	`extras_condiciones_ojos` varchar(200) NOT NULL DEFAULT '',
	`extras_condiciones_piel` varchar(200) NOT NULL DEFAULT '',
	`extras_condiciones_fisicas` varchar(200) NOT NULL DEFAULT '',
	`extras_musica` varchar(200) NOT NULL DEFAULT '',
	`extras_actividades` varchar(200) NOT NULL DEFAULT '',
	`extras_a` varchar(200) NOT NULL DEFAULT '',
	`extras_b` varchar(200) NOT NULL DEFAULT '',
	`extras_c` varchar(200) NOT NULL DEFAULT '',
	`extras_d` varchar(200) NOT NULL DEFAULT '',
	PRIMARY KEY (`usuario_id`)
)

Archivo: registro.php Funcion: Aquí los usuarios se registran, es decir que se llenan las primeras 4 tablas de la BD. Este archivo no tiene ninguna falla, solo lo deje porque tiene interaccion con la base de datos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
	include('acceso_db.php'); // incluimos el archivo de conexión a la Base de Datos
?>
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	 <?php
	    if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos desde el formulario
	        // creamos una función que nos parmita validar el email
	        function valida_email($correo) {
	            if (preg_match('/^[A-Za-z0-9-_.+%]+@[A-Za-z0-9-.]+\.[A-Za-z]{2,4}$/', $correo)) return true;
	            else return false;
	        }
	        // Procedemos a comprobar que los campos del formulario no estén vacíos
	        $sin_espacios = count_chars($_POST['usuario_nombre'], 1);
	        if(!empty($sin_espacios[32])) { // comprobamos que el campo usuario_nombre no tenga espacios en blanco
	            echo "El campo <em>usuario_nombre</em> no debe contener espacios en blanco. <a href='javascript:history.back();'>Reintentar</a>";
	        }elseif(empty($_POST['usuario_nombre'])) { // comprobamos que el campo usuario_nombre no esté vacío
	            echo "No haz ingresado tu usuario. <a href='javascript:history.back();'>Reintentar</a>";
	        }elseif(empty($_POST['usuario_clave'])) { // comprobamos que el campo usuario_clave no esté vacío
	            echo "No haz ingresado contraseña. <a href='javascript:history.back();'>Reintentar</a>";
	        }elseif($_POST['usuario_clave'] != $_POST['usuario_clave_conf']) { // comprobamos que las contraseñas ingresadas coincidan
	            echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>";
	        }elseif(!valida_email($_POST['usuario_email'])) { // validamos que el email ingresado sea correcto
	            echo "El email ingresado no es válido. <a href='javascript:history.back();'>Reintentar</a>";
	        }else {
	            // "limpiamos" los campos del formulario de posibles códigos maliciosos
	            $usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
	            $usuario_clave = mysql_real_escape_string($_POST['usuario_clave']);
	            $usuario_email = mysql_real_escape_string($_POST['usuario_email']);
	            // comprobamos que el usuario ingresado no haya sido registrado antes
	            $sql = mysql_query("SELECT usuario_nombre FROM usuarios WHERE usuario_nombre='".$usuario_nombre."'");
	            if(mysql_num_rows($sql) > 0) {
	                echo "El nombre usuario elegido ya ha sido registrado anteriormente. <a href='javascript:history.back();'>Reintentar</a>";
	            }else {
	                $usuario_clave = md5($usuario_clave); // encriptamos la contraseña ingresada con md5
	                // ingresamos los datos a la BD
	                $reg = mysql_query("INSERT INTO usuarios (usuario_nombre, usuario_clave, usuario_email, usuario_freg) VALUES ('".$usuario_nombre."', '".$usuario_clave."', '".$usuario_email."', NOW())");
	                if($reg) {
	                    echo "Datos ingresados correctamente.";
	                }else {
	                    echo "ha ocurrido un error y no se registraron los datos.";
	                }
	            }
	        }
	    }else {
	?>
		<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
		    <label>Usuario:</label><br />
		    <input type="text" name="usuario_nombre" maxlength="15" /><br />
		    <label>Contraseña:</label><br />
		    <input type="password" name="usuario_clave" maxlength="15" /><br />
		    <label>Confirmar Contraseña:</label><br />
		    <input type="password" name="usuario_clave_conf" maxlength="15" /><br />
		    <label>Email:</label><br />
		    <input type="text" name="usuario_email" maxlength="50" /><br />
		    <input type="submit" name="enviar" value="Registrar" />
		    <input type="reset" value="Borrar" />
		</form>
	<?php
	    }
	?>
</body>
</html>

Y por ultimo acá esta datos.php, el que no ingresa los archivos a la bd.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
    session_start();
    include('acceso_db.php'); // incluímos los datos de acceso a la BD
    // comprobamos que se haya iniciado la sesión
    if(isset($_SESSION['usuario_nombre'])) {
?>
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	Hola <?=$_SESSION['usuario_nombre']?>, Aqui podras poner tus intereses, como eres, que te gusta y demas.
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	 <?php
	    if(isset($_POST['enviar'])) {// comprobamos que se han enviado los datos desde el formulario
 
	                // ingresamos los datos a la BD
	                $reg = mysql_query("INSERT INTO usuarios (usuario_sexo, usuario_edad, usuario_nacionalidad, extras_intereses, extras_condiciones_pelo, extras_condiciones_ojos, extras_condiciones_piel, extras_condiciones_fisicas, extras_musica, extras_actividades) VALUES ('".$usuario_sexo."', '".$usuario_edad."', '".$usuario_nacionalidad."', '".$extras_intereses."', '".$extras_condiciones_pelo."', '".$extras_condiciones_ojos."', '".$extras_condiciones_piel."', '".$extras_condiciones_fisicas."', '".$extras_musica."', '".$extras_actividades."', NOW())");
	                if($reg) {
	                    echo "Datos ingresados correctamente.";
	                }else {
	                    echo "ha ocurrido un error y no se registraron los datos.";
	                }
	            }
 
	   else {
	?>
		<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
		    <label>Sexo:</label><br />
		    <input type="text" name="usuario_sexo" maxlength="12" /><br />
		    <label>Edad:</label><br />
		    <input type="text" name="usuario_edad" maxlength="3" /><br />
		    <label>Nacionalidad:</label><br />
		    <input type="text" name="usuario_nacionalidad" maxlength="40" /><br />
		    <label>Cuenta un poco sobre ti:</label><br />
		    <input type="text" name="extras_intereses" maxlength="500" /><br />
		   <label>Color de pelo:</label><br />
		    <input type="text" name="extras_condiciones_pelo" maxlength="80" /><br />
		   <label>Color de ojos:</label><br />
		    <input type="text" name="extras_condiciones_ojos" maxlength="80" /><br />
		  <label>Color de piel:</label><br />
		    <input type="text" name="extras_condiciones_piel" maxlength="80" /><br />
	  <label>Contextura fisica:</label><br />
		    <input type="text" name="extras_condiciones_fisicas" maxlength="80" /><br />
		    <label>Musica que te gusta:</label><br />
		    <input type="text" name="extras_musica" maxlength="150" /><br />
		    <label>Actividades que realizas:</label><br />
		    <input type="text" name="extras_actividades" maxlength="30" /><br />
 
 
		   <input type="submit" name="enviar" value="Actualizar datos" />
		    <input type="reset" value="Borrar" />
		</form>
	<?php
	    }
	?>
	</body>
</html>
<?php
    }else {
        echo "No puedes ver esto. Registrate o logueate.<br />
        <a href='acceso.php'>Ingresar</a> / <a href='registro.php'>Regitrarme</a>";
    }
?>


Espero que me puedan ayudar muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Los datos no se ingresan a la BD

Publicado por zendi (824 intervenciones) el 26/01/2015 22:28:37
Que tal, bueno asegurate de si las variables corresponden bien con cada uno de los campos de la BD, y tambien mira a ver si corresponden si hay alguno que sea tipo string y los estes tratando de emparejarlo con un campo de tipo numerico, te lo menciono porque a veces me ha pasado.
Exito.
pero Coméntanos OK?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Los datos no se ingresan a la BD

Publicado por Vale (9 intervenciones) el 26/01/2015 22:53:26
Gracias por tu respuesta, pero no es por esos motivos, me fijé, controlé todo y no hay ningun error :(. Puede ser alguna otra cosa?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Los datos no se ingresan a la BD

Publicado por zendi (824 intervenciones) el 27/01/2015 02:53:45
Te pregunto acaso te arroja este error:
echo "ha ocurrido un error y no se registraron los datos.";
o queda en blanco el formulario?
Haz lo siguiente tambien copia la instruccion:
INSERT INTO usuarios (usuario_sexo, usuario_edad, usuario_nacionalidad, extras_intereses, extras_condiciones_pelo, extras_condiciones_ojos, extras_condiciones_piel, extras_condiciones_fisicas, extras_musica, extras_actividades) VALUES (VAR1,VAR2,... ETC)
y le colocas las variables correspondientes en la seccion de mysql en la parte de tu base de datos a ver que mensaje te arroja.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Los datos no se ingresan a la BD

Publicado por Vale (9 intervenciones) el 27/01/2015 02:58:02
Gracias por tu nueva respuesta, si, me aparece eso, al presionar enviar me salta el error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Los datos no se ingresan a la BD

Publicado por zendi (824 intervenciones) el 27/01/2015 12:50:31
Hola, coloca la instruccion INSERT en el SQL de tu base de datos:

INSERT INTO usuarios (usuario_sexo, usuario_edad, usuario_nacionalidad, extras_intereses, extras_condiciones_pelo, extras_condiciones_ojos, extras_condiciones_piel, extras_condiciones_fisicas, extras_musica, extras_actividades) VALUES ($variablesexo,... ETC)
de esa manera podras detectar el error.

comentanos ok
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Los datos no se ingresan a la BD

Publicado por Vale (9 intervenciones) el 27/01/2015 15:55:04
Gracias, ahora hago eso y te aviso .)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Los datos no se ingresan a la BD

Publicado por Miguel Viveros (16 intervenciones) el 23/08/2016 04:15:05
A mí me funcionó quitando el NOW() al final de la línea 25. pero me surgió otro problema.
Los datos llegan vacíos a la base de datos, es decir, antes me arrojaba el mismo error ("ha ocurrido un error y no se registraron los datos") y quitándole el NOW() ya no me sale el error y la base de datos sí se actualiza pero con los campos vacíos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar