Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] ingreso datos a BD mysql mediante php - problema con campo especifico :C

Estas en el tema de ingreso datos a BD mysql mediante php - problema con campo especifico :C en el foro de PHP en Foros del Web. pues asi de claro, estoy desarrollando un blog y en los input para el ingreso de comentarios ingreso los datos nombre,email,comentario,post a la base de ...
  #1 (permalink)  
Antiguo 19/12/2015, 21:12
 
Fecha de Ingreso: diciembre-2015
Mensajes: 115
Antigüedad: 8 años, 11 meses
Puntos: 2
Pregunta ingreso datos a BD mysql mediante php - problema con campo especifico :C

pues asi de claro, estoy desarrollando un blog y en los input para el ingreso de comentarios ingreso los datos nombre,email,comentario,post a la base de datos, todo bien con los primeros tres pero con el campo post es el problema...

Tengo un campo oculto llamado 'post' cuyo valor por defecto es el id del post que se esta comentando.
y al momento de hacer el ingreso de datos me ingresa todo bien excepto en la columna post donde SIEMPRE inserta cero cuando se supone que ya tiene un valor asignado

tambien intente cambiar el campo (solo a modo de prueba) para ingresar yo mismo el valor a traves del formulario y sorpresa... inserte 7 y termino registrando lo mismo: CERO... nada les dejo mi codigo para ver si tienen un mejor ojo que el mio y me echan una mano que me vendria bien salir de 'esta especie de error'

dejarcomentario.html

<div class="feat_prod_box-coment" id="box-comentario">
<input type="text" id="usuario" placeholder="Nombre">
<input type="email" id="email" placeholder="Email">
<input type="hidden" id="post" value="<?php echo $id; ?>">
<textarea id="comentario" placeholder="Comentario"></textarea>
<label><?php echo $_SESSION['a']." + ".numero($_SESSION['b']); ?> = <input type="text" style="width:20px;" id="capt"></label><br>
<button id="comentar" onclick="javascript:enviar_comentario();">Comentar </button>
<span id="respuesta" style="color:#FF4545;"></span>
</div>

comentar.php
Código PHP:
<?php
require 'conexiondb.php';


if (!isset(
$_GET['user']) or !isset($_GET['email']) or !isset($_GET['comentario']) or !isset($_GET['post']) or !isset($_GET['capt'])) {
    echo 
"Error inesperado";
}elseif (
strlen($_GET['user'])<or strlen($_GET['user'])>200) {
    echo 
"Error: usuario no válido";
}elseif (
strlen($_GET['comentario'])<or strlen($_GET['comentario'])>200) {
    echo 
"Error: comentario no válido";
}elseif (
intval($_GET['capt'])!=$_SESSION['a']+$_SESSION['b']) {
    echo 
"Error en la suma";
}else{
    
$user $_GET['user'];
    
$email $_GET['email'];
    
$post $_GET['post'];
    
$comentario $_GET['comentario'];
    
$fecha date("d")." de ".mes(date("m"))." de ".date("Y")." a las  ".date("h:i");
    
$ip get_ip();
     
$sql mysql_query("INSERT INTO `comentarios`( `nombre`, `comentario`, `fecha`, `email`, `activo`, `post`,`ip` ) 
        VALUES ('$user','$comentario','$fecha','$email','1','$post','$ip')" 
);
     if (
$sql) {
         echo 
"gracias por su comentario";
     }else{
         echo 
"Error con el servidor, intente más tarde.";
     }
     
//echo mysql_error();

}

?>


comentar.js (para validar el ingreso de datos en los comentarios)
// creamos la funcion que validara nuestro formulario
function enviar_comentario() {
var user = document.getElementById("usuario").value;
if (user.length<5 || user.length>200) {
document.getElementById("usuario").focus();
document.getElementById('respuesta').innerHTML= "Error: Usuario no válido";
return 0;
};

var email = document.getElementById("email").value;
var regexp = /^[0-9a-zA-Z._.-]+\@[0-9a-zA-Z._.-]+\.[0-9a-zA-Z]+$/;
if (regexp.test(email)==0 || email.length==0) {
document.getElementById("email").focus();
document.getElementById('respuesta').innerHTML= "Error: Email no válido"; return 0;
};

var comentario = document.getElementById("comentario").value;
if (comentario.length<5) {
document.getElementById("comentario").focus();
document.getElementById('respuesta').innerHTML= "Error: Comentario no válido"; return 0;
};

var post = document.getElementById("post").value;
var capt = document.getElementById("capt").value;

var url = "php/comentar.php?user="+user+"&email="+email+"&comenta rio="+comentario+"&post="+post+"&capt="+capt;
myRequest.open("GET", url, true);
myRequest.onreadystatechange = respuestaAJAX;
myRequest.send(null);
}


function respuestaAJAX() {
if(myRequest.readyState == 4) {
if(myRequest.status == 200) {
if (myRequest.responseText=="1") {
document.getElementById("box-comentario").innerHTML="Gracias por su comentario.";
}else{
document.getElementById('respuesta').innerHTML= myRequest.responseText;
}
} else {
document.getElementById('respuesta').innerHTML= myRequest.status;
}
}else{
document.getElementById('respuesta').innerHTML="<i mg src='imagenes/loading.gif' width='16' />";''
}

}
  #2 (permalink)  
Antiguo 19/12/2015, 23:44
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 655
Antigüedad: 20 años
Puntos: 6
Respuesta: ingreso datos a BD mysql mediante php - problema con campo especifico :C

Cambia esto:
Código PHP:
Ver original
  1. <input type="hidden" id="post" value="<?php echo $id; ?>">
  2.  
  3. Por esto:
  4.  
  5. <input type="hidden" name="post" value="<?php echo $id; ?>">

Última edición por pilucho; 19/12/2015 a las 23:46 Razón: [HIGH...
  #3 (permalink)  
Antiguo 20/12/2015, 13:11
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: ingreso datos a BD mysql mediante php - problema con campo especifico :C

No se si se te ha escapado al copiar el código, pero en
Código Javascript:
Ver original
  1. var url = "php/comentar.php?user="+user+"&email="+email+"&comenta rio="+comentario+"&post="+post+"&capt="+capt;

Tienes escrito "comenta rio" separado, y lo recibes como "comentario". Si no es eso, puedes ir probando en esa misma línea, poner en +post+ un valor, por ejemplo un 5, y ver si te lo recibe el php.
Si lo recibe, entonces el error está en el input, y así reduce la búsqueda jeje.
Saludos :D
  #4 (permalink)  
Antiguo 20/12/2015, 17:09
 
Fecha de Ingreso: diciembre-2015
Mensajes: 115
Antigüedad: 8 años, 11 meses
Puntos: 2
Respuesta: ingreso datos a BD mysql mediante php - problema con campo especifico :C

hice lo que dijiste y efectivamente por fin me ingreso un valor distinto a 0...
  #5 (permalink)  
Antiguo 20/12/2015, 17:10
 
Fecha de Ingreso: diciembre-2015
Mensajes: 115
Antigüedad: 8 años, 11 meses
Puntos: 2
Respuesta: ingreso datos a BD mysql mediante php - problema con campo especifico :C

Cita:
Iniciado por rodocoyote15 Ver Mensaje
No se si se te ha escapado al copiar el código, pero en
Código Javascript:
Ver original
  1. var url = "php/comentar.php?user="+user+"&email="+email+"&comenta rio="+comentario+"&post="+post+"&capt="+capt;

Tienes escrito "comenta rio" separado, y lo recibes como "comentario". Si no es eso, puedes ir probando en esa misma línea, poner en +post+ un valor, por ejemplo un 5, y ver si te lo recibe el php.
Si lo recibe, entonces el error está en el input, y así reduce la búsqueda jeje.
Saludos :D
si ingreso el valor en vez de 0... por fin... bueno se reduce un poco la busqueda, tal vez como dices... puede ser el input
  #6 (permalink)  
Antiguo 20/12/2015, 17:19
 
Fecha de Ingreso: diciembre-2015
Mensajes: 115
Antigüedad: 8 años, 11 meses
Puntos: 2
Respuesta: ingreso datos a BD mysql mediante php - problema con campo especifico :C

Cita:
Iniciado por pilucho Ver Mensaje
Cambia esto:
Código PHP:
Ver original
  1. <input type="hidden" id="post" value="<?php echo $id; ?>">
  2.  
  3. Por esto:
  4.  
  5. <input type="hidden" name="post" value="<?php echo $id; ?>">

hice el cambio pero nada... no entiendo la verdad que falle ese unico input en especifico porque me inserta siempre cero T-T
  #7 (permalink)  
Antiguo 20/12/2015, 19:58
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: ingreso datos a BD mysql mediante php - problema con campo especifico :C

Pues en primera, no sé si tenga algo que ver que el name sea "post", quizá y puedas intentar cambiarle eso.
Prueba así:

Código HTML:
Ver original
  1. <input hidden="hidden" type="text" id="usuarioId" name="usuarioId" value="<?php echo $id; ?>" >

Obviando que en el script, cambiarás el getElementById("usuarioId"), nos cuentas

Última edición por rodocoyote15; 20/12/2015 a las 20:03
  #8 (permalink)  
Antiguo 20/12/2015, 20:43
 
Fecha de Ingreso: diciembre-2015
Mensajes: 115
Antigüedad: 8 años, 11 meses
Puntos: 2
De acuerdo Respuesta: ingreso datos a BD mysql mediante php - problema con campo especifico :C

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Pues en primera, no sé si tenga algo que ver que el name sea "post", quizá y puedas intentar cambiarle eso.
Prueba así:

Código HTML:
Ver original
  1. <input hidden="hidden" type="text" id="usuarioId" name="usuarioId" value="<?php echo $id; ?>" >

Obviando que en el script, cambiarás el getElementById("usuarioId"), nos cuentas
me has resuelto la noche man XD ... solucionado! claro que me gustaria (si puedes) que me expliques porque con el cambio del nombre del id funciono?
  #9 (permalink)  
Antiguo 20/12/2015, 20:56
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: ingreso datos a BD mysql mediante php - problema con campo especifico :C

Cita:
Iniciado por kukiko11 Ver Mensaje
me has resuelto la noche man XD ... solucionado! claro que me gustaria (si puedes) que me expliques porque con el cambio del nombre del id funciono?
No estoy seguro de que el cambio de Id haya sido, sólo que por ejemplo para definir un método en un form se utiliza "post" o "get", y por no usar palabras reservadas de html, pues mejor te dije que le cambiarás jaja, pero desconozco si sea eso.

Lo otro, verás que cambié la estructura, fue
Código HTML:
hidden="hidden" type="text"
y no
Código HTML:
type="hidden"
Recuerdo haber tenido un problema así hace un par de semanas, y de esa forma lo resolví jeje. Saludos :D

P.D. Cuando tengas un error, cada lugar donde pase el dato, ve cambiandolo por un valor que conozcas, y testeando si funciona o no, verás en que parte está el error. Saludos

Etiquetas: formulario, mysql, web+general
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:09.