Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/04/2008, 06:33
moquehua
 
Fecha de Ingreso: agosto-2004
Mensajes: 113
Antigüedad: 19 años, 8 meses
Puntos: 0
evitar que el formulario se envie solo

Hola, estoy haciendo un miniblog, una cosita chiquita con comentarios que se suben a una base de datos, y casi todo funciona perfecto menos el hecho de que cada vez que entro a la página el formulario se activa y agrega un registro en blanco en la base de datos.
Todos los PHP están dentro de ver.php (formulario html y el php que lo procesa)
El PHP es
Código PHP:
<?php 
$notaid 
$_POST['id'];
$nombre_vis $_POST['nombre_vis']; 
$mail_vis $_POST['mail_vis']; 
$coment $_POST['coment'];


mysql_query("insert into comentarios (notaid, nombre_vis, mail_vis, coment, fecha) VALUES ('".$id."','".$nombre_vis."','".$mail_vis."','".$coment."')") or die ("error:\n".mysql_error());

 
?>
y el html

Código:
<form action="ver.php?id=<? echo $id; ?>" method="post" name="formulario" target="_self">
  <table width="500" border="0" cellpadding="0" cellspacing="0">
    <tr> 
      <td width="200">&nbsp;</td>
      <td><input name="id" type="hidden" value="<?php echo $id; ?>" />
        tu nombre<br>
      <input type="text" name="nombre_vis" value="<? echo @$_POST["nombre_vis"] ?>"size="60"></td>
    </tr>
    <tr> 
      <td>&nbsp;</td>
      <td>tu e-mail<br><input type="text" name="mail_vis" value="<? echo @$_POST["mail_vis"] ?>"size="60"></td>
    </tr>
    <tr> 
      <td>&nbsp;</td>
      <td>tu comentario<br>
        <textarea name="coment" cols="60" rows="5" value="<? echo @$_POST["coment"] ?>"></textarea></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input name="Submit" type="submit" class="cajatexto1" id="submit" value="Enviar comentario">
      &nbsp;
<input type="reset" value="Cancelar"></td>
    </tr>
  </table>
</form>
Viendo que el formulario se enviaba solo le agrege un IF y quedo asi

Código PHP:
<?php if ($Submit){
$notaid $_POST['id'];
$nombre_vis $_POST['nombre_vis']; 
$mail_vis $_POST['mail_vis']; 
$coment $_POST['coment'];

mysql_query("insert into comentarios (notaid, nombre_vis, mail_vis, coment, fecha) VALUES ('".$id."','".$nombre_vis."','".$mail_vis."','".$coment."')") or die ("error:\n".mysql_error());
}
else { 
?>
y el html queda asi:

Código:
<form action="ver.php?id=<? echo $id; ?>" method="post" name="formulario" target="_self">
  <table width="500" border="0" cellpadding="0" cellspacing="0">
    <tr> 
      <td width="200">&nbsp;</td>
      <td><input name="id" type="hidden" value="<?php echo $id; ?>" />
        tu nombre<br>
      <input type="text" name="nombre_vis" value="<? echo @$_POST["nombre_vis"] ?>"size="60"></td>
    </tr>
    <tr> 
      <td>&nbsp;</td>
      <td>tu e-mail<br><input type="text" name="mail_vis" value="<? echo @$_POST["mail_vis"] ?>"size="60"></td>
    </tr>
    <tr> 
      <td>&nbsp;</td>
      <td>tu comentario<br>
        <textarea name="coment" cols="60" rows="5" value="<? echo @$_POST["coment"] ?>"></textarea></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input name="Submit" type="submit" class="cajatexto1" id="submit" value="Enviar comentario">
      &nbsp;
<input type="reset" value="Cancelar"></td>
    </tr>
  </table>
</form><? }
?>
de esa forma el formulario no se envia cuando entro en la página pero tampoco se envia cuando completo los datos y presiono Enviar comentario.
Hay otra forma de evitar que se inserten datos en blanco o me esta faltando algo en la comprobación?
gracias y buen día