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

1 respuesta

Respuesta
1
Hernancamilo pues es muy sencillo tu problema solo te hacía falta un if que valide si se ha hecho alguna petición POST es decir si se ha pulsado sobre el botón Enviar.
Saludos.
//Si existe alguna petición Post hago esto:
if($_POST)
 { 
$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
 }

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas