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: 13 años, 11 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 (
$totEmp0) {
    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: 13 años, 6 meses
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: 16 años
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: 13 años, 11 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: 16 años
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: 16 años, 10 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: 13 años, 11 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: 13 años, 11 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 07:15.