Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/03/2008, 16:38
Avatar de buque
buque
 
Fecha de Ingreso: marzo-2008
Mensajes: 4
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Formulario de envío email

Muchas gracias, Carlojas.

El caso es que adapté el código que está en la página que me enviaste y me llegó a funcionar pero ahora, al meterle alguna otra validación, no me funciona y no sé qué puede fallarme. Incluso he vuelto a coger el código de ejemplo del que se habla en esa página y tampoco. ¿Qué puede estar fallando?

Código HTML:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>ABDisplay - Solicitar un catálogo</title>
<link href="css/style.css" rel="stylesheet" type="text/css"/>
<SCRIPT language=JavaScript>

<!-- http://www.desarrolloweb.com/articulos/1767.php
function valida_envia(){
    //valido el nombre
    if (document.fvalida.nombre.value.length==0){
       alert("El campo NOMBRE es requerido y está vacío")
       document.fvalida.nombre.focus()
       return 0;
    }

    //valido los apellidos
    if (document.fvalida.apellidos.value.length==0){
       alert("El campo APELLIDOS es requerido y está vacío")
       document.fvalida.apellidos.focus()
       return 0;
    }

    //valido la empresa
    if (document.fvalida.empresa.value.length==0){
       alert("El campo EMPRESA es requerido y está vacío")
       document.fvalida.empresa.focus()
       return 0;
    }

    //valido la dirección
    if (document.fvalida.direccion.value.length==0){
       alert("El campo DIRECCIÓN es requerido y está vacío")
       document.fvalida.direccion.focus()
       return 0;
    }

    //valido el código postal.
    cp = document.fvalida.cp.value
    document.fvalida.cp.value=cp
	if (document.fvalida.cp.value.length==0){
       alert("El campo CÓDIGO POSTAL es requerido y está vacío.")
       document.fvalida.cp.focus()
       return 0;
    }else{
       if (isNaN(cp)){
	       alert("Tiene que introducir un número en el campo CÓDIGO POSTAL.")
		   document.fvalida.cp.focus()
           return 0;
       }
    } 	

    //valido el teléfono.
    tlf = document.fvalida.tlf.value
    document.fvalida.tlf.value=tlf
    if (isNaN(tlf)){
       alert("Tiene que introducir un número en el campo TELÉFONO.")
       document.fvalida.tlf.focus()
       return 0;
    }
	if (document.fvalida.mail.value.length!=0){
		if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.fvalida.mail.value))){
		   alert("La dirección de email es incorrecta.");
		   document.fvalida.mail.focus()
		   return 0;
		}
	}
    //el formulario se envia
    document.fvalida.submit();
} 

//-->
</SCRIPT>
</head>
<body>
<div id="capa_form">
  <h2><span>Catálogo ABCDisplay. Mándanos tus datos y en breve recibirás tu catálogo, ¡así de fácil!</span></h2>
  <form name="fvalida" method="post" action="envia_formulario.php">
    <table id="formulario">
      <tr>
        <td class="r">Nombre<span>*</span></td>
        <td class="l"><input type="text" name="nombre" size="43" maxlength="100"></td>
      </tr>
      <tr>
        <td class="r">Apellidos<span>*</span></td>
        <td class="l"><input type="text" name="apellidos" size="43" maxlength="100"></td>
      </tr>
      <tr>
        <td class="r">Empresa<span>*</span></td>
        <td class="l"><input type="text" name="empresa" size="43" maxlength="100"></td>
      </tr>
      <tr>
        <td class="r">Cargo</td>
        <td class="l"><input type="text" name="cargo" size="43" maxlength="100"></td>
      </tr>
      <tr>
        <td class="r">Dirección<span>*</span></td>
        <td class="l"><input type="text" name="direccion" size="43" maxlength="100"></td>
      </tr>
      <tr>
        <td class="r">Código postal<span>*</span></td>
        <td class="l"><input type="text" name="cp" size="5" maxlength="5"></td>
      </tr>
      <tr>
        <td class="r">Teléfono</td>
        <td class="l"><input type="text" name="tlf" size="9" maxlength="9"></td>
      </tr>
      <tr>
        <td class="r">e-mail</td>
        <td class="l"><input type="text" name="mail" size="43" maxlength="100"></td>
      </tr>
      <tr>
        <td colspan="2" class="nota"><span>*</span>Datos obligatorios para la recepción del catálogo</td>
      </tr>
      <tr>
        <td colspan="2" align="center"><input type="button" value="Enviar" onClick="valida_envia()" class="boton"></td>
      </tr>
    </table>
  </form>
  <div id="close"><a href="javascript: self.close ()">Cerrar ventana</a></div>
</div>
</body>
</html> 
Código PHP:
<?

$nombre 
$_POST["nombre"];

$apellidos $_POST["apellidos"];

$empresa $_POST["empresa"];

$cargo $_POST["cargo"];

$direccion $_POST["direccion"];

$cp $_POST["cp"];

$tlf $_POST["tlf"];

$mail $_POST["mail"];

if ((
$nombre == "") || ($apellidos == "") || ($empresa == "") || ($direccion == "") || ($cp == "")) {
header("Location: formulario.htm");
exit;
}

$msg "ESTOS SON LOS DATOS RECIBIDOS:\n";
$msg .= "Nombre: $nombre\n";
$msg .= "Apellidos: $apellidos\n";
$msg .= "Cargo: $cargo\n\n";
$msg .= "Dirección: $direccion\n\n";
$msg .= "Código postal: $cp\n\n";
$msg .= "Teléfono: $tlf\n\n";
$msg .= "E-Mail: $mail\n\n";

$to "[email protected]";
$subject "$nombre, solicita más información";
$mailheaders "From: $mail\n";
$mailheaders .= "Reply-To: $mail\n\n";

mail($to$subject$msg$mailheaders);
?>

<html>
<head>
<title>Envio Email</title>
</head>
<body>

<H1>El siguiente Email ha sido enviado con los siguientes datos:</H1>

<p><strong>Nombre:</strong><br>
<? echo "$nombre"?>

<p><strong>Apellidos:</strong><br>
<? echo "$apellidos"?>

<p><strong>Empresa:</strong><br>
<? echo "$empresa"?>

<p><strong>Cargo:</strong><br>
<? echo "$cargo"?>

<p><strong>Código postal:</strong><br>
<? echo "$cp"?>

<p><strong>Teléfono:</strong><br>
<? echo "$tlf"?>

<p><strong>Tu Email:</strong><br>
<? echo "$mail"?>


</body>
</html>
Muchisimas gracias, me está ayudando mucho.