a ver si alguien me puede ayudar porfavor
He hecho un formulario con Jquery y con PHP.
el problema es que cada vez que alguien entra en la página sin validar, el mensaje se envía igual. entonces recibimos un montón de mensajes en blanco.
Yo creo que es en el submit o en onclick del html pero no logro encontrar!!
pongo los siguientes códigos para ver:
Código HTML :
<html xmlns="http://www.w3.org/1999/xhtml"> <head></head> <body><div id="popup" style="display: none;"> <div class="content-popup"> <div class="close"><a href="#" id="close"><img src="img_icones/close.png" border="0"></a></div> <div class="resaltado">SUSCRIPCIÓN A LA NEWSLETTER</div> <form action="00-news/envio-news-esp.php" method="post" id="contacto" onsubmit="return validarNewsletter();"> <br /> <span class="formulario">Nombre* </span><br /><input name="nombre" type="text" id="nombre" size="32" maxlength="64" /></span> <br /> <span class="formulario">Empresa* </span><br /><input name="empresa" type="text" id="empresa" size="32" maxlength="64" /> <br /> <span class="formulario">País* </span><br /><input name="pais" type="text" id="pais" size="32" maxlength="64" /> <br /> <span class="formulario">E–mail* </span><br /><input name="email" type="text" id="email" size="32" maxlength="64" /> <br/> <br /> <input type="checkbox" value="transfer" name="transfer" id="transfer" /><label for="transfer" class="formulario">TRANSFER DE PRENSAS</label><br /> <input type="checkbox" value="garras" name="garras" id="garras"/><label for="garras" class="formulario">GARRAS DE ROBOT</label> <br /> <input type="checkbox" value="sujecion" name="sujecion" id="sujecion" /><label for="sujecion" class="formulario">BRIDAS DE SUJECIÓN</label> <input name="borrar" type="reset" class="boton" id="borrar" value="Borrar" /> <input name="button" type="submit" id="button" value="Enviar" onclick="Enviar validarNewsletter();"/> </label> <br /></form></div></div> </body> </html>
Código Javascript :
function validarNewsletter() { //v4.0 var nombre = $("#nombre").val(); if (nombre == "") { alert("Nombre es un dato necesario"); $("#nombre").focus(); return false; } var empresa = $("#empresa").val(); if (empresa == "") { alert("Empresa es un dato necesario"); $("#empresa").focus(); return false; } var pais = $("#pais").val(); if (pais == "") { alert("Pais es un dato necesario"); $("#pais").focus(); return false; } var email = $("#email").val(); if (email == "") { alert("Email es un dato necesario"); $("#email").focus(); return false; } if (ParseEmail(email) == false) { alert("Email con formato incorrecto"); $("#email").focus(); return false; } return true; } function ParseEmail(cadena) { if (cadena.lastIndexOf('.') == -1) { return false; //no tiene puntos } var ArrDom = new Array("es", "com", "net", "edu", "info", "cat", "tv", "uk", "fr", "org", "cat", "be"); var SufixDom = cadena.substring(cadena.lastIndexOf('.') + 1, cadena.length); var DomOk = true; for (i = 0; i < ArrDom.length; i = i + 1) { if (SufixDom == ArrDom[i]) { DomOk = true; } } if (!DomOk) return false; //El dominio no esta en la lista if (cadena.search('@') == -1) { return false; //no hay ningun @ } if (cadena.indexOf('@') != cadena.lastIndexOf('@')) { return false; //hay mas de una @ } if (cadena.indexOf('@') == 0) { return false; // @ en primer lugar } if (cadena[cadena.indexOf('@') - 1] == '.' || cadena[cadena.indexOf('@') + 1] == '.') { return false; // puntos pegados en el @ } for (i = 0; i < cadena.length; i++) { var caracter = cadena.charAt(i); if (!((caracter >= 'a' && caracter <= 'z') || (caracter >= 'A' && caracter <= 'Z') || (caracter >= '0' && caracter <= '9') || caracter == '.' || caracter == '-' || caracter == '@' || caracter == '_')) { return false; } } return true; }
Código PHP :
<?php $to = "[email protected]"; $subject = "Newsletter-nova"; $msg = "Newsletter-esp\n Un usuario solicita información de newsletters:\n"; $msg .= "Nombre: $_POST[nombre]\n"; $msg .= "Empresa: $_POST[empresa]\n"; $msg .= "Pais: $_POST[pais]\n"; $msg .= "E-Mail: $_POST[email]\n"; $msg .= "Type: $_POST[transfer]\n"; $msg .= "Type: $_POST[garras]\n"; $msg .= "Type: $_POST[sujecion]\n"; $error = array(00123,00124,00125,00126,00127,00234,00256); $mailheaders = "From: Formulario web <[email protected]> \n"; mail($to, $subject, $msg, $mailheaders); ?>