Me inserta registros en blanco a Mysql
Quiero preguntalr eque tengo un problema con una página web que estoy desarrollando pues cuando se abre dicha página se inserta 1 registro en blanco a la base de datos que tengo en Mysql, necesito que se inserte un registro solo cuando el usuario de clic en el botón ej el código que tengo es:
<td width="85" height="35"><font color="#FF0000">Logotipo</font></td>
<td width="250" height="35">Nutrilife</td>
<td width="56%" height="35"><form id="form2" name="form2" method="post" action="Prueba.php">
<form action="Autenticacionboletin.php" method="POST" onsubmit="MM_validateForm('Nombre2','','R','Email2','','RisEmail','Pais_Ciudad2','','R');return document.MM_returnValue">
<table width="200" border="0" align="center">
<tr>
<td>Nombre</td>
<td><input name="Nombre2" type="text" id="Nombre2" size="50" /></td>
</tr>
<tr>
<td>Email</td>
<td><input name="Email2" type="text" id="Email2" onblur="MM_validateForm('Nombre2','','R','Email2','','RisEmail','Pais_Ciudad2','','R');return document.MM_returnValue" size="50"/></td>
</tr>
<tr>
<td>Pais/Ciudad</td>
<td><input name="Pais_Ciudad2" type="text" id="Pais_Ciudad2" size="50" /></td>
</tr>
<tr>
<td colspan="2"><hr /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Enviar2" value="Enviar" id="Enviar2" onclick= " Mensaje()"/>
<script languaje= "JavaScript" type="text/javascript" >
/*function Mensaje(){
if (Prueba.Nombre2!="" || Prueba.Email2!="" || Pais_ciudad2!="" ) {
alert("Enviado con éxito!"); } } */
function Mensaje()
{
if (Nombre2 == '' || Email2 == '' || Pais_ciudad2 == '') //comprueba si el campo nombre esta vacío
{
("No puedes dejar campos vacíos");
form.nombre.focus(); //posicionarse en el campo vacío
return false;
}
else
alert("Enviado con éxito!");
return true;
}
</script>
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<td width="85" height="33"><font color="#FF0000">Logotipo</font></td>
<td width="250" height="33">Nutrilife en Youtube</td>
<td width="56%" height="33"> </td>
</tr>
<tr>
<td width="85" height="65"><font color="#FF0000">Logotipo</font></td>
<td width="250" bordercolor="#EFEFEF" background="twitter.png"> </td>
<td width="56%"> </td>
</tr>
</table>
<p>
<?php error_reporting(E_ALL & ~E_NOTICE); ?>
<?php
function Conectarse(){
if (!($link=mysql_connect("localhost","root","califele2011"))){
echo "Error conectando a la base de datos. Por favor comunique con el administrador ";
exit();
}
if (!mysql_select_db("omnilife",$link)){
echo "Error seleccionando la base de datos. Por favor comunique con el administrador";
exit();
}
return $link;
}
// validadort opcional no borrar
/* codigo de validacion no borrar
if($_POST['Nombre2'] == "")
{
echo "<script>alert(\"Debes de digitar el Nombre.\");</script>";
}
elseif ($_POST['Email2'] == "") {
echo "<script>alert(\"Debes de digitar el Email.\");</script>"; }
elseif ($_POST['Pais_Ciudad2'] == "") {
echo "<script>alert(\"Debes de digitar la ciudad y el pais.\");</script>"; } */
$link = Conectarse(); # con esto me conecto a la DB
ini_set("date.timezone", "America/Bogota"); # esto no veo que lo estes usando. Para mi, esto sobra.
$Nombre = $_POST['Nombre2'];
$Email = $_POST['Email2'];
$Pais_Ciudad = $_POST['Pais_Ciudad2'];
# El error que veia era que despues de INTO.. Tu tabla la estabas colocando entre comillas '' y eso no se debe hacer.
if (mysql_query("INSERT INTO boletin (Nombre,Email,Pais_Ciudad) values ('$Nombre','$Email','$Pais_Ciudad')")){
} else {
echo "Error: ".mysql_error();
}
mysql_close($link);# Con esto cierro la conexion a la DB nov 3
?>
Discúlpeme el código tan extenso pero necesito que arregle ese inconveniente
<td width="85" height="35"><font color="#FF0000">Logotipo</font></td>
<td width="250" height="35">Nutrilife</td>
<td width="56%" height="35"><form id="form2" name="form2" method="post" action="Prueba.php">
<form action="Autenticacionboletin.php" method="POST" onsubmit="MM_validateForm('Nombre2','','R','Email2','','RisEmail','Pais_Ciudad2','','R');return document.MM_returnValue">
<table width="200" border="0" align="center">
<tr>
<td>Nombre</td>
<td><input name="Nombre2" type="text" id="Nombre2" size="50" /></td>
</tr>
<tr>
<td>Email</td>
<td><input name="Email2" type="text" id="Email2" onblur="MM_validateForm('Nombre2','','R','Email2','','RisEmail','Pais_Ciudad2','','R');return document.MM_returnValue" size="50"/></td>
</tr>
<tr>
<td>Pais/Ciudad</td>
<td><input name="Pais_Ciudad2" type="text" id="Pais_Ciudad2" size="50" /></td>
</tr>
<tr>
<td colspan="2"><hr /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="Enviar2" value="Enviar" id="Enviar2" onclick= " Mensaje()"/>
<script languaje= "JavaScript" type="text/javascript" >
/*function Mensaje(){
if (Prueba.Nombre2!="" || Prueba.Email2!="" || Pais_ciudad2!="" ) {
alert("Enviado con éxito!"); } } */
function Mensaje()
{
if (Nombre2 == '' || Email2 == '' || Pais_ciudad2 == '') //comprueba si el campo nombre esta vacío
{
("No puedes dejar campos vacíos");
form.nombre.focus(); //posicionarse en el campo vacío
return false;
}
else
alert("Enviado con éxito!");
return true;
}
</script>
</td>
</tr>
</table>
</form>
</td>
</tr>
<tr>
<td width="85" height="33"><font color="#FF0000">Logotipo</font></td>
<td width="250" height="33">Nutrilife en Youtube</td>
<td width="56%" height="33"> </td>
</tr>
<tr>
<td width="85" height="65"><font color="#FF0000">Logotipo</font></td>
<td width="250" bordercolor="#EFEFEF" background="twitter.png"> </td>
<td width="56%"> </td>
</tr>
</table>
<p>
<?php error_reporting(E_ALL & ~E_NOTICE); ?>
<?php
function Conectarse(){
if (!($link=mysql_connect("localhost","root","califele2011"))){
echo "Error conectando a la base de datos. Por favor comunique con el administrador ";
exit();
}
if (!mysql_select_db("omnilife",$link)){
echo "Error seleccionando la base de datos. Por favor comunique con el administrador";
exit();
}
return $link;
}
// validadort opcional no borrar
/* codigo de validacion no borrar
if($_POST['Nombre2'] == "")
{
echo "<script>alert(\"Debes de digitar el Nombre.\");</script>";
}
elseif ($_POST['Email2'] == "") {
echo "<script>alert(\"Debes de digitar el Email.\");</script>"; }
elseif ($_POST['Pais_Ciudad2'] == "") {
echo "<script>alert(\"Debes de digitar la ciudad y el pais.\");</script>"; } */
$link = Conectarse(); # con esto me conecto a la DB
ini_set("date.timezone", "America/Bogota"); # esto no veo que lo estes usando. Para mi, esto sobra.
$Nombre = $_POST['Nombre2'];
$Email = $_POST['Email2'];
$Pais_Ciudad = $_POST['Pais_Ciudad2'];
# El error que veia era que despues de INTO.. Tu tabla la estabas colocando entre comillas '' y eso no se debe hacer.
if (mysql_query("INSERT INTO boletin (Nombre,Email,Pais_Ciudad) values ('$Nombre','$Email','$Pais_Ciudad')")){
} else {
echo "Error: ".mysql_error();
}
mysql_close($link);# Con esto cierro la conexion a la DB nov 3
?>
Discúlpeme el código tan extenso pero necesito que arregle ese inconveniente
Respuesta de Germán Peralta Bernal
1