Foros del Web » Programando para Internet » PHP »

Formulario comentario inserta basura....

Estas en el tema de Formulario comentario inserta basura.... en el foro de PHP en Foros del Web. Hola amigos tengo un gran problema....... en mi pagina en la seccion de ver detalels de noticias puse un forlulario al ultimo para que el ...
  #1 (permalink)  
Antiguo 21/11/2010, 23:26
 
Fecha de Ingreso: mayo-2008
Mensajes: 103
Antigüedad: 16 años
Puntos: 0
Formulario comentario inserta basura....

Hola amigos tengo un gran problema.......

en mi pagina en la seccion de ver detalels de noticias puse un forlulario al ultimo para que el usuario ponga comentarios..... el problema es que pone mucha basura de forma automatica en la base de datos... revise mi codigo de DW y no parece que esta algo movido.......

Alguien me puede orientar de que este pasando....... y por donde le puedo buscar...

Este es el codigo del formulario...

Código HTML:
[CODE]<form action="" method="post" name="form2" class="encabezados" id="form">
        <span ><strong>____________________________________________________________</strong><br />
            <strong>Dejanos tu comentario sobre esta noticia..... </strong><br />
            <strong>Nombre:</strong>
            <label>
              <input name="nombre" type="text" class="TextosNotas" id="nombre" value="<?php if (!empty($row_user['nombre'])) { echo $row_user['nombre'];} ?> <?php if (empty($row_user['nombre'])) { echo $_POST['nombre'];} ?>" />
            </label>
            <?php if (isset($perdido) && in_array('nombre', $perdido)) { ?>
				<span class="alertas">Ponga un Nombre</span>
			  <?php } ?>
            </span></span><strong><br />
              Correo:</strong>
              <input name="correo" type="text" class="TextosNotas" id="correo" value="<?php if (!empty($row_user['email'])) { echo $row_user['email'];} ?> <?php if (empty($row_user['email'])) { echo $_POST['correo'];} ?>" size="30" />
              
			  <?php if (isset($perdido) && in_array('correo', $perdido)) { ?>
              <span class="alertas">Ponga un Correo</span>
              <?php } ?>

          <p class="encabezados_chicos"><strong>Tu Comentario:</strong>
            <label><br />
              <textarea name="coment" cols="100" rows="3" class="TextosNotas" id="coment"><?php echo $_POST['coment']  ?></textarea>
              <br />
<?php if (isset($perdido) && in_array('coment', $perdido)) { ?>
  <span class="alertas">
                  <span class="alertas">Ponga un Comentario</span>
                  <?php } ?>
                <br />
            </label>
            <label>
              <input type="submit" name="comentario" id="comentario" value="Enviar mi comentario" />
            </label>
          </form>[/CODE]
Y Este es codigo de PHP donde checo las variables y se hace el INSERT

Código PHP:
[CODE]<?php if (array_key_exists('comentario',$_POST)) {

// eliminar caracteres escape de array POST
    
if (get_magic_quotes_gpc()) {
      function 
stripslashes_deep($value) {
    
$value is_array($value) ? array_map('stripslashes_deep'$value) : stripslashes($value);
    return 
$value;
    }
      
$_POST array_map('stripslashes_deep'$_POST);
      }

    
//Lista de archivos que se esperan
      
$esperado = array();
      
//Configurar archivos obligatorios
      
$obligatorio = array('coment''nombre''correo');
      
//Crear un array vacÃ*o para cualquier archivo perdido
      
$perdido = array();

      
//Procesar las variables $_POST
      
foreach ($_POST as $key => $value) {
      
//asignar a variable temporalmente y vacÃ*a espacio blanco si no un array
      
$temp is_array($value) ? $value trim($value);
      
//si vacÃ*o y obligatorio, añadir a array $perdido
      
if (empty($temp) && in_array($key$obligatorio)) {
          
array_push($perdido$key);
      }
      
//En otro caso, asignar a una variable del mismo nombre que $key
      
elseif (in_array($key$esperado)) {
      ${
$key} = $temp;
      }
      }
      if (empty(
$perdido)) {
$comentario $_POST['coment'];
$user $_POST['nombre'];
$correo $_POST['correo'];
$id_nota $row_noticia['noticia_id'];

$result =  "insert into comentarios (comentario, nombre, id_nota, correo) values ('$comentario', '$user', '$id_nota', '$correo')";
if (
mysql_query($result,$vissiontotal)){
 
?>
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=noticia_ver.php?noticia_id=<?php echo $row_noticia['noticia_id']; ?>">
               <?php exit;        
               }
                }
                }
 
?>[/CODE]
  #2 (permalink)  
Antiguo 22/11/2010, 03:48
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Formulario comentario inserta basura....

El error debe de estar dentro del escapamiento de caracteres del POST, ya que no veo nada anormal que pueda ser el que hace eso.
__________________
Siempre fallaras el 100% de los tiros que no te atrevas a lanzar.
El 98% de los adolescentes han fumado, si eres del dichoso 2% que no lo ha hecho, copia y pega esto en tu firma.

Etiquetas: basura, comentario, inserta, formulario
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 15:30.