Foros del Web » Programando para Internet » PHP »

Problema: Inserta campos en blanco

Estas en el tema de Problema: Inserta campos en blanco en el foro de PHP en Foros del Web. Hola, quiero poner un sistema de comentarios en mi index, pero mi problema es q cuando entran al index, añade un comentario en blanco a ...
  #1 (permalink)  
Antiguo 03/01/2011, 00:30
 
Fecha de Ingreso: mayo-2010
Mensajes: 185
Antigüedad: 16 años, 6 meses
Puntos: 2
Problema: Inserta campos en blanco

Hola, quiero poner un sistema de comentarios en mi index, pero mi problema es q cuando entran al index, añade un comentario en blanco a la base de datos, este es mi codigo:

Código PHP:
<?php

$conexion 
= mysql_connect("sql201.byethost15.com", "user", "pass");
mysql_select_db("b15_5229524_estacion", $conexion);

$queEmp = "SELECT * FROM Discos ORDER BY id DESC"; 
$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
 if (
$totEmp> 0) {
    while (
$rowEmp = mysql_fetch_assoc($resEmp)) {
 
    }
}
?>
<? 
    
if (nombre==""){
    echo 
"Debes rellenar todos los campos"; }
    else {      
    
$que = "INSERT INTO firmas (nombre, comentario) ";  
    
$que.= "VALUES ('".$_POST['nick']."', '".$_POST['comentario']."')";  
    
$res = mysql_query($que, $conexion) or die(mysql_error());  
    
$state = true;  
}
        
?>
        <?php  



if ($state) {  
echo 
"<p /><em>Comentario agregado</em></p>";  
} 


?>
<?
// maximo por pagina 
$limit = 25; 
 
// pagina pedida 
$pag = (int) $_GET["pag"]; 
if (
$pag < 1) 
{ 
   
$pag = 1; 
} 
$offset = ($pag-1) * $limit; 
 
 
$sql = "SELECT SQL_CALC_FOUND_ROWS nombre, comentario FROM firmas LIMIT $offset, $limit"; 
$sqlTotal = "SELECT FOUND_ROWS() as total"; 
 
$rs = mysql_query($sql); 
$rsTotal = mysql_query($sqlTotal); 
 
$rowTotal = mysql_fetch_assoc($rsTotal); 
// Total de registros sin limit 
$total = $rowTotal["total"]; 
 
?>
<table border="1" bordercolor="#000"> 
   <thead> 
      <tr> 
         <td><b>Id</b></td> 
         <td><strong>Nick</strong></td> 
         <td><strong>Comentario</strong></td>
      </tr> 
   </thead> 
   <tbody> 
      
<?php 
         
while ($row = mysql_fetch_assoc($rs)) 
         { 
            
$id = $row["id"]; 
            
$name = htmlentities($row["nombre"]);
            
$comentario = $row["comentario"]; 
         
?>
 
         <tr> 
            <td>
<?php echo $id; ?></td> 
            <td>
<?php echo $name; ?></td> 
            <td><?php echo $comentario; ?></td>
         </tr> 
         
<?php 
         
} 
      
?>
   </tbody> 
   <tfoot> 
      <tr> 
         <td colspan="3"> 
      
<?php 
         $totalPag 
= ceil($total/$limit); 
         
$links = array(); 
         for( 
$i=1; $i<=$totalPag ; $i++) 
         { 
            
$links[] = "<a href=\"?pag=$i\">$i</a>";  
         } 
         echo 
implode(" - ", $links); 
      
?>         </td> 
      </tr>
   </tfoot> 
</table>
</p>
          <p><strong>Añade el Tuyo!</strong></p>
          <form id="form1" name="form1" method="post" action="">
            Nick
            <label>
              <input type="text" name="nick" id="textfield" />
              <br />
              Mensaje:<br />
            </label>
            <p>
              <label>
              <textarea name="comentario" id="textarea" cols="45" rows="5"></textarea>
              </label>
            </p>
            <p>
              <label>
              <input type="submit" name="button" id="button" value="Enviar mensaje" />
              <input type="hidden" name="action" value="add" />
              </label>
            </p>
          </form>
  #2 (permalink)  
Antiguo 03/01/2011, 02:00
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 16 años
Puntos: 48
Respuesta: Problema: Inserta campos en blanco

Para empezar: if (nombre==""){
Debería ser : if ($nombre==""){ ¿no?

A parte, yo primero comprobaría que se hubiesen mandado datos por post o get.
  #3 (permalink)  
Antiguo 03/01/2011, 02:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 18 años, 7 meses
Puntos: 2534
Respuesta: Problema: Inserta campos en blanco

además en ningún lugar defines $nombre, cuando debería ser algo así...
Código PHP:
$nombre = $_POST['nombre']; 
pero tampoco existe dicho name en el formulario...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 03/01/2011, 14:28
 
Fecha de Ingreso: mayo-2010
Mensajes: 185
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: Problema: Inserta campos en blanco

Gracias ahora funciona, pero el problema es q cuando entran al index, sale la opcion q dice "Debes rellenar todos los campos", pero es q ni siquiera envian el formulario y sale eso, por que, este es el codigo:

Código PHP:
<?
$nombre 
= $_POST['nick']; 
    if (
$nombre==""){
    echo 
"Debes rellenar todos los campos"; }
    else {      
    
$que = "INSERT INTO firmas (nombre, comentario) ";  
    
$que.= "VALUES ('".$_POST['nick']."', '".$_POST['comentario']."')";  
    
$res = mysql_query($que, $conexion) or die(mysql_error());  
    
$state = true;  
}
        
?>
        <?php  



if ($state) {  
echo 
"<p /><em>Comentario agregado</em></p>";  
} 


?>
  #5 (permalink)  
Antiguo 03/01/2011, 14:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 18 años, 7 meses
Puntos: 2534
Respuesta: Problema: Inserta campos en blanco

sucede que la variable $_POST solo existe al ser enviado el formulario, simplemente debes comparar si existe o no?
Código PHP:
if ( ! empty($_POST))
{
  
// existe algún envío de formulario!
} 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 03/01/2011, 15:06
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 19 años, 4 meses
Puntos: 1567
Respuesta: Problema: Inserta campos en blanco

no conozco los detalles de la aplicación, pero esto me suena más lógico, ya que tu página, por defecto no debería hacer nada, a menos que exista un $_POST para 'nick' y este no esté vacio

Código PHP:
Ver original
  1. <?php
  2. $nombre = $_POST['nick'];
  3. $nombre = trim($nombre); // aseguras que no te pongan espacios en blanco
  4.  
  5. if(isset($nombre)){
  6. if(empty($nombre)){
  7. echo "Debes rellenar todos los campos";
  8. }else {      
  9. echo "ok";
  10. echo "$nombre";
  11. ### tu sql
  12. }
  13. }
  14. ?>


Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 03/01/2011, 15:12
 
Fecha de Ingreso: mayo-2010
Mensajes: 185
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: Problema: Inserta campos en blanco

Lo intente asi men, me dice q el comentario ha sido agregado pero lo agrega en blanco:

Código PHP:
<?
                $nick1 
= stripslashes($_POST["nick"]);
$nick1 = strip_tags($canciones);
$comen = stripslashes($_POST["comentario"]);
$comen = strip_tags($descarga);
if ( ! empty(
$_POST))
{ 
$nombre = $_POST['nick']; 
    if (
$nombre==""){
    echo 
"Debes rellenar todos los campos"; }
    else {      
    
$que = "INSERT INTO firmas (nombre, comentario) ";  
    
$que.= "VALUES ('".$nick1."', '".$comen."')";  
    
$res = mysql_query($que, $conexion) or die(mysql_error());  
    
$state = true;  
    echo 
"Comentario agregado correctamente";
}
    }    
?>
  #8 (permalink)  
Antiguo 03/01/2011, 15:16
 
Fecha de Ingreso: mayo-2010
Mensajes: 185
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: Problema: Inserta campos en blanco

Men ya lo solucione gracias de todos modos! Solo tenia los strip_tags mal, ya q no tenia correctamente las variables gracias!

Etiquetas: blanco, campos, inserta
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 11:48.