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"> </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> </td>
<td>tu e-mail<br><input type="text" name="mail_vis" value="<? echo @$_POST["mail_vis"] ?>"size="60"></td>
</tr>
<tr>
<td> </td>
<td>tu comentario<br>
<textarea name="coment" cols="60" rows="5" value="<? echo @$_POST["coment"] ?>"></textarea></td>
</tr>
<tr>
<td> </td>
<td><input name="Submit" type="submit" class="cajatexto1" id="submit" value="Enviar comentario">
<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"> </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> </td>
<td>tu e-mail<br><input type="text" name="mail_vis" value="<? echo @$_POST["mail_vis"] ?>"size="60"></td>
</tr>
<tr>
<td> </td>
<td>tu comentario<br>
<textarea name="coment" cols="60" rows="5" value="<? echo @$_POST["coment"] ?>"></textarea></td>
</tr>
<tr>
<td> </td>
<td><input name="Submit" type="submit" class="cajatexto1" id="submit" value="Enviar comentario">
<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