Foros del Web » Programando para Internet » PHP »

Error al enviar comentario

Estas en el tema de Error al enviar comentario en el foro de PHP en Foros del Web. Tengo el sistema de comentarios.. ya esta terminado.. pero falla al comienzo.. ya que por alguna razon no envia los comentarios ingresados a la db.. ...
  #1 (permalink)  
Antiguo 22/10/2011, 11:56
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 11
Error al enviar comentario

Tengo el sistema de comentarios.. ya esta terminado.. pero falla al comienzo.. ya que por alguna razon no envia los comentarios ingresados a la db.. no se cual es la razon.. ustedes ven alguna falla aqui?

Código MySQL:
Ver original
  1. CREATE TABLE `comentarios` (
  2. `comentario` VARCHAR( 255 ) NOT NULL ,
  3. `idUsuario` INT( 11 ) UNSIGNED NOT NULL ,
  4. `idNoticia` INT( 11 ) UNSIGNED NOT NULL ,
  5. `estado` ENUM( 'sin validar', 'apto' ) NOT NULL DEFAULT 'sin validar',
  6. `fCreacion` TIMESTAMP NOT NULL
  7. ) ENGINE = MYISAM ;

Código PHP:
Ver original
  1. $query  = "INSERT INTO comentarios (comentario, idUsuario, idNoticia) VALUES ('$comentario','$idUsuario','$idNoticia')";
  2.         $result = mysql_query($query, $dbConn);
  3.        
  4.         header( 'Location: vernoticia.php?idNoticia='.$idNoticia );
  5.         die;
  #2 (permalink)  
Antiguo 22/10/2011, 12:46
 
Fecha de Ingreso: octubre-2011
Ubicación: USA
Mensajes: 166
Antigüedad: 12 años, 6 meses
Puntos: 19
Respuesta: Error al enviar comentario

estas tratatando de insertar tres campos de la tabla cuando tiens 5 y los dos que faltan son not null esa puede ser la causa.

a los campos que me refiero son

estado
fCreacion

Saludos
  #3 (permalink)  
Antiguo 22/10/2011, 12:52
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 3 meses
Puntos: 288
Respuesta: Error al enviar comentario

si si a mi me paso lo mismo
  #4 (permalink)  
Antiguo 22/10/2011, 12:52
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: Error al enviar comentario

pon luego de la sentencia

Código PHP:
Ver original
  1. $result = mysql_query($query, $dbConn);
  2.   if(!$result){
  3.       die('Atención hubo un error . '.mysql_error());
  4.   }

y luego postea el resultado ...
  #5 (permalink)  
Antiguo 24/10/2011, 21:22
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 11
Respuesta: Error al enviar comentario

He eliminado de la db fCreacion.. y el campo enum se agrega por default como sin validar al agregar un comentario. Mcun puse esa sentencia y sigue igual.. Dejo el codigo completo aver si alguien me puede dar una mano.. porque veo que el error no esta ahi..

Código PHP:
Ver original
  1. <?
  2.  
  3. // iniciamos session
  4.  
  5. // archivos necesarios
  6. require_once 'admin/config.php';
  7. require_once 'admin/conexion.php';
  8. require_once 'admin/esUsuario.php';
  9.  
  10. // obtengo puntero de conexion con la db
  11. $dbConn = conectar();
  12.  
  13. // verificamos que este conectado el usuario
  14. if ( !empty( $_SESSION['usuario'] ) && !empty($_SESSION['password']) ) {
  15.     $arrUsuario = esUsuario( $_SESSION['usuario'], $_SESSION['password'], $dbConn );      
  16. }
  17.  
  18. if ( !empty($_POST['submit']) ) {
  19.    
  20.     if ( !empty($_POST['comentario']) )     $comentario     = $_POST['comentario'];
  21.     if ( !empty($_GET['idNoticia']) )      $idNoticia         = $_GET['idNoticia'];
  22.     if ( !empty($arrUsuario['idUsuario']))  $idUsuario        = $arrUsuario['idUsuario'];
  23.    
  24.     // completamos la variable error si es necesario
  25.     if ( empty($comentario) )   $error['comentario']   = true;
  26.     if ( empty($idNoticia) )    $error['idNoticia']       = true;
  27.     if ( empty($idUsuario) )    $error['idUsuario']       = true;
  28.    
  29.     // si no hay errores registramos al usuario
  30.     if ( empty($error) ) {
  31.        
  32.         // inserto los datos de registro en la db
  33.         $query  = "INSERT INTO comentarios (comentario, idUsuario, idNoticia) VALUES ('$comentario','$idUsuario','$idNoticia')";
  34.         $result = mysql_query($query, $dbConn);
  35.        
  36.         header( 'Location: vernoticia.php?idNoticia='.$idNoticia );
  37.         die;
  38.        
  39.     }
  40.    
  41. }
  42.  
  43. // traemos la noticia
  44. $query = "SELECT noticias.idNoticia, noticias.titulo, noticias.copete, noticias.cuerpo, categorias.valor as categoria, usuarios.usuario FROM noticias
  45. INNER JOIN categorias ON categorias.idCategoria = noticias.idCategoria
  46. lEFT JOIN usuarios ON usuarios.idUsuario = noticias.idUsuario
  47. WHERE noticias.idNoticia = " . $_GET['idNoticia'] . " LIMIT 1";
  48. $resultado = mysql_query ($query, $dbConn);
  49. $noticia = mysql_fetch_assoc ($resultado);
  50.  
  51. // traemos los comentarios aprobados
  52. $arrComentarios = array();
  53. $query = "SELECT comentarios.idComentario, comentarios.comentario, usuarios.usuario
  54. FROM comentarios
  55. INNER JOIN usuarios ON comentarios.idUsuario = usuarios.idUsuario
  56. WHERE comentarios.estado = 'apto' AND comentarios.idNoticia = " . $_GET['idNoticia'] . "
  57. ORDER BY comentarios.idComentario DESC";
  58. $resultado = mysql_query ($query, $dbConn);
  59. while ( $row = mysql_fetch_assoc ($resultado)) {
  60.     array_push( $arrComentarios,$row );
  61. }
  62.  
  63. ?>
  64. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  65. <html xmlns="http://www.w3.org/1999/xhtml">
  66. <head>
  67.     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  68.     <title>Blog Personal</title>
  69. </head>
  70.  
  71. <body>
  72.  
  73.     <h1>Blog Personal</h1>
  74.    
  75.     <? if ( empty($arrUsuario['usuario']) ) { ?>
  76.     <ul>
  77.         <li><a href="ingresar.php">Iniciar sesi&oacute;n</a></li>
  78.         <li><a href="registrar.php">Reg&iacute;strate gratis</a></li>
  79.     </ul>
  80.     <? } else { ?>
  81.     <p>Bienvenido <?= $arrUsuario['usuario'] ?> - <a href="index.php?salir=true">Salir</a></p>
  82.         <? if ( $arrUsuario['tipo'] == 'admin' ) { ?>
  83.         <ul>
  84.             <li><a href="admin/index.php">Panel de administraci&oacute;n</a></li>
  85.         </ul>
  86.         <? } ?>
  87.     <? } ?>
  88.  
  89.     <h2><? echo $noticia['titulo']; ?></h2>
  90.     <p>Publicado por <b><? echo $noticia['usuario']; ?></b> en <i><? echo $noticia['categoria']; ?></i></p>
  91.     <div><? echo $noticia['copete']; ?></div>
  92.     <div><? echo $noticia['cuerpo']; ?></div>
  93.    
  94.     <h2>Comentarios</h2>
  95.     <div>
  96.         <? foreach ($arrComentarios as $comentario) { ?>
  97.         <p>
  98.             <b><? echo $comentario['usuario']; ?></b> dijo:<br />
  99.             <i><? echo $comentario['comentario']; ?></i>
  100.         </p>
  101.         <? } ?>
  102.     </div>
  103.    
  104.     <div>
  105.         <?php if ( !empty( $arrUsuario ) ) { ?>
  106.        
  107.             <form action="vernoticia.php?idNoticia=<?php echo $_GET['idNoticia']; ?>" method="post">
  108.                 <p>
  109.                     <label for="comentario">Dejar un comentario</label><br />
  110.                     <textarea rows="3" cols="50" name="comentario"></textarea>
  111.                 </p>
  112.                 <p>
  113.                     <input name="submit" type="submit" value="Enviar" />
  114.                 </p>
  115.             </form>
  116.        
  117.         <?php } else { ?>
  118.             <p>Para dejar un comentario hay que ser un usuario registrado. <a href="registrar.php">Registrar</a> o <a href="ingresar.php">Ingresar</a></p>
  119.         <?php } ?>
  120.     </div>
  121. </body>
  122. </html>
  #6 (permalink)  
Antiguo 24/10/2011, 21:30
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: Error al enviar comentario

no me entendistes lo que te indique no es para arreglar tu código es para saber con detalle cual es el error .. es para depurar... lo que deberías hacer es ejecutar y postear ( copiar y pegar el error que te lanza )

lo que te indico ponlo en cada query osea en cada acción hacia la bbdd en los select en los insert busca info de como depurar un código en php
  #7 (permalink)  
Antiguo 24/10/2011, 22:27
 
Fecha de Ingreso: octubre-2010
Ubicación: Buenos Aires
Mensajes: 126
Antigüedad: 13 años, 6 meses
Puntos: 11
Respuesta: Error al enviar comentario

Gracias por responder mcun, y si, de hecho si te entendi, el que se expreso mal fui yo. Comprendi que el codigo que me diste es para matar el script en caso de error y que no es para arreglar el codigo, lo que te queria decir es que al agregar esas lineas, el script sigue funcionando de igual manera, no marca ningun error ni nada.. por lo que supongo el problema viene de mas arriba, voy a buscar la info que me dijiste de depurar aver si doy con el error...
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 01:05.