PHP - No encuentro el error y hace un momento sí funcionaba

 
Vista:

No encuentro el error y hace un momento sí funcionaba

Publicado por Miguel Vi (16 intervenciones) el 24/08/2016 18:23:00
Estaba funcionando bien este código, y de un momento a otro me empezó a mandar el error: ha ocurrido un error y no se registraron los datos.

Pero unos minutos antes me llegaban bien los datos a la base de datos, no tengo idea porqué de un momento a otro dejó de funcionar, alguien podrá encontrar el error?

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
<?php
	if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos desde el formulario
 
		// Procedemos a comprobar que los campos del formulario no estén vacíos
		$sin_espacios = count_chars($_POST['cuentas_cr_Nivel'], 1);
		if(!empty($sin_espacios[32])) { // comprobamos que el campo usuario_nombre no tenga espacios en blanco
			echo "El campo <em>cuentas_cr_Nivel</em> no debe estar vacío. <a href='javascript:history.back();'>Reintentar</a>";
		}
 
		elseif(empty($_POST['cuentas_cr_Arena'])) { // comprobamos que el campo usuario_nombre no esté vacío
			echo "No has ingresado el número de Arena. <a href='javascript:history.back();'>Reintentar</a>";
		}
 
		elseif(empty($_POST['cuentas_cr_CN'])) { // comprobamos que el campo usuario_clave no esté vacío
			echo "No has ingresado las cuentas normales. <a href='javascript:history.back();'>Reintentar</a>";
		}
 
		elseif(empty($_POST['cuentas_cr_CR'])) { // comprobamos que el campo usuario_clave no esté vacío
			echo "No has ingresado las cuentas raras. <a href='javascript:history.back();'>Reintentar</a>";
		}
 
		elseif(empty($_POST['cuentas_cr_CE'])) { // comprobamos que el campo usuario_clave no esté vacío
			echo "No has ingresado las cuentas épicas. <a href='javascript:history.back();'>Reintentar</a>";
		}
 
		elseif(empty($_POST['cuentas_cr_CL'])) { // comprobamos que el campo usuario_clave no esté vacío
			echo "No has ingresado las cuentas legendarias. <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['cuentas_cr_Nivel']);
			$usuario_clave = mysql_real_escape_string($_POST['cuentas_cr_Arena']);
			$usuario_email = mysql_real_escape_string($_POST['cuentas_cr_CN']);
			$usuario_nombre = mysql_real_escape_string($_POST['cuentas_cr_CR']);
			$usuario_clave = mysql_real_escape_string($_POST['cuentas_cr_CE']);
			$usuario_email = mysql_real_escape_string($_POST['cuentas_cr_CL']);
 
 
 
			// comprobamos que el usuario ingresado no haya sido registrado antes
				$reg = mysql_query("INSERT INTO cuentas_cr(cuentas_cr_Nivel, cuentas_cr_Arena, cuentas_cr_CN, cuentas_cr_CR, cuentas_cr_CE, cuentas_cr_CL) VALUES ('".$_POST['cuentas_cr_Nivel']."' , '".$_POST['cuentas_cr_Arena']."' , '".$_POST['cuentas_cr_CN']."' , '".$_POST['cuentas_cr_CR']."' , '".$_POST['cuentas_cr_CE']."' , '".$_POST['cuentas_cr_CL']."')");
				if($reg) {
					echo "<script language='javascript'>window.location='cuentas_cr.php'</script>";
				}else {
					echo "ha ocurrido un error y no se registraron los datos.";
				}
		}
	}else {
?>
	<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
		<label>Nivel de Cuenta:</label><br />
		<input type="number" name="cuentas_cr_Nivel" maxlength="15" /><br />
		<label>Arena:</label><br />
		<input type="number" name="cuentas_cr_Arena" maxlength="15" /><br />
		<label>Cartas Normales:</label><br />
		<input type="text" name="cuentas_cr_CN" maxlength="15" /><br />
		<label>Cartas Raras:</label><br />
		<input type="text" name="cuentas_cr_CR" maxlength="15" /><br />
		<label>Cartas Épicas:</label><br />
		<input type="text" name="cuentas_cr_CE" maxlength="15" /><br />
		<label>Cartas Legendarias:</label><br />
		<input type="text" name="cuentas_cr_CL" maxlength="15" /><br />
		<input type="submit" name="enviar" value="Enviar" />
		<input type="reset" value="Borrar" />
	</form>
<?php
}
?>
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
Imágen de perfil de Lenny

No encuentro el error y hace un momento sí funcionaba

Publicado por Lenny (22 intervenciones) el 24/08/2016 19:50:17
Hola Miguel.
Disculpa,pero realmente ¿Qué estabas haciendo?,puedes mandar una captura grafica de como esta compuesta.tal vez te entiendan un poco mejor,Disculpa si me entrometí je.
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

No encuentro el error y hace un momento sí funcionaba

Publicado por Miguel Vi (16 intervenciones) el 24/08/2016 20:11:20
Al contrario, gracias por el comentario y por intentar ayudar.

Estaba buscando la manera de que además de que me llegara ese formulario a la base de datos, me identifique también el ID del usuario y se lo agregue a la base de datos "cuentas_cr", tuve un avance pero el id me llegaba en "cero".

Luego apliqué el control+z hasta dejarlo como estaba antes y ya no me funciona.
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
Imágen de perfil de Lenny

No encuentro el error y hace un momento sí funcionaba

Publicado por Lenny (22 intervenciones) el 24/08/2016 20:47:21
cuando recuperas el id te lo regresa en 0?
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

No encuentro el error y hace un momento sí funcionaba

Publicado por Miguel Vi (16 intervenciones) el 24/08/2016 21:02:52
Así es, al principio tengo esto:

1
2
3
4
5
6
<?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'])) {
?>

y le agregué esto:
1
2
3
4
5
6
<?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']) || ($_SESSION['usuario_id'])) {
?>

y más abajo agregué esto:

1
$reg = mysql_query("INSERT INTO cuentas_cr(usuario_id, cuentas_cr_Nivel, cuentas_cr_Arena, cuentas_cr_CN, cuentas_cr_CR, cuentas_cr_CE, cuentas_cr_CL) VALUES ('".$_POST['usuario_id']."' , ('".$_POST['cuentas_cr_Nivel']."' , '".$_POST['cuentas_cr_Arena']."' , '".$_POST['cuentas_cr_CN']."' , '".$_POST['cuentas_cr_CR']."' , '".$_POST['cuentas_cr_CE']."' , '".$_POST['cuentas_cr_CL']."')");

Si no mal recuerdo eso es lo que había hecho, y es ahí donde me mandaba el id como "0", luego di control+z hasta dejarlo como lo tenía antes y resulta que ya me da error. Seguramente algo está mal pero no encuentro qué parte del código es la que le moví
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
Imágen de perfil de Lenny

No encuentro el error y hace un momento sí funcionaba

Publicado por Lenny (22 intervenciones) el 24/08/2016 21:13:56
bueno, a mi me llego a pasar pero era porque no mandaba bien id, aparte lo manejas por clase?
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

No encuentro el error y hace un momento sí funcionaba

Publicado por Miguel Vi (16 intervenciones) el 24/08/2016 22:34:24
mmm no sé a qué te refieres con la clase, pero por el momento mi inquietud es porqué ya no me manda nada a la base de datos, no encuentro el error si estoy casi seguro que lo dejé como estaba.

¿Tendrá que ver que en la base de datos le moví a las tablas en motor de almacenamiento de MyISAM a InnoDB? Pero eso fue ayer y hoy todavía hice pruebas y todo estaba bien.

Por el momento quiero dejar a un lado lo de las id_usuario. Quiero empezar nuevamente desde el punto en que me mandaba los datos a la base de datos.

Tendrás noción del porqué estará fallando el código que puse arriba?

Y nuevamente gracias por el interés.
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

No encuentro el error y hace un momento sí funcionaba

Publicado por Miguel Vi (16 intervenciones) el 24/08/2016 23:18:43
Ya arreglé eso, lo que pasa que en la base de datos en la tabla de cuentas_cr le había quitado el autoincrementable a la columna usuario_id, y ya con eso se estropeaba todo. Ya me llegan los datos a la base de datos.

Ahora, podrás darme un consejo para lograr que al llenar el formulario del código de arriba, relacione esos datos con el usuario que está llenando el formulario en ese momento?

Ese formulario sólo le aparece a los usuarios logueados, entonces, los datos que introduzca se deben vincular con el id_usuario.

Sabrás cómo lograrlo?

Gracias y disculpa las molestias
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
Imágen de perfil de Lenny

No encuentro el error y hace un momento sí funcionaba

Publicado por Lenny (22 intervenciones) el 25/08/2016 19:34:41
No la estas guardando en $_POST estas utilizando $_SESSION,ahi pusiste que del post te guarde, pero no estas recibiendo el valor en post,lo estas haciendo en SESSION.
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