Pequeño formulario en página web

Estoy creando una página web y necesito añadir en ella un pequeño formulario para que los usuarios que quieran recibir un boletín semanal me manden su correo electrónico.
Me gustaría añadirlo a la izquierda de la página, debajo de un pequeño menu y que estuviese en la plantilla de la web para que aparezca en todas las páginas pero no se como hacerlo.
También me gustaría que me explicasen como hacer para que al pulsar el botón enviar me mande un correo electrónico automáticamente con la dirección de correo de la persona y en el asunto que diga algo así como "solicitud de boletín".
Estoy utilizando el dreamweaver, que tiene la opción de crear formularios pero cuando le pinchas en enviar, abre el gestor de correo electrónico y eso no es lo que me gustaría.
Gracias.
{"lat":38.272688535981,"lng":-2.28515625}
Respuesta
1
Vamos a ir de a poco.
Lo primero que necesitaría es que me des un panorama mejor de como sería el formulario y como es la página donde lo querés insertar para que te pueda orientar mejor.-
Te comento que lo que vos querés hacer requiere un php que se ocupe de enviar los datos del formulario por mail, esto se hace en el lado servidor, pero cuando al action de un formulario le ponés mailto:... lo va a querer ejecutar en lado cliente y por eso te abre una ventana del outlook express en lugar de enviar el form.-
Cuando tengamos el diseño del formulario listo pasamos a la parte del php para el envío del mail.-
Atentamente. Manuel Fernández.-
Vale, probando he conseguido algo.
En la plantilla de la página y debajo del menu he creado una tabla y dentro de ella he incrustado este código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>formulario</title>
</head>
<body>
<table width="100%">
<tr>
<td> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td><?
if (!$HTTP_POST_VARS){
?>
      <form action="contactar.php" method="post" name="contactar.php" id="contactar.php">
<p><font face="Verdana, Arial, Helvetica, sans-serif"><br />
          </font><font size="3">Email:</font>
          <input type="text" name="email" size="25" />
          <br />
          </font></p>
<p>
          <input name="submit" type="submit" value="Enviar" />
        </p>
</form>
      <?
}else{
//Estoy recibiendo el formulario, compongo el cuerpo
$cuerpo .= "Email: " . $HTTP_POST_VARS["email"] . "\n";
//mando el correo...
mail("(xxxxxx)","suscripcion al boletin",$cuerpo);
//doy las gracias por el envío
echo "Gracias por tu interes. En breve recibiras nuestro boletin.";
}
?></td>
</tr>
</table>
</body>
</html>
Ademas he colocado en la carpeta templates el archivo contactar.php con el mismo código.
Me funciona perfecto, pero ahora tengo un problema y es que cuando pones el mail y le das a enviar te pasa a una página en blanco en la que te da el agradecimiento, pero a mi me gustaría que te redirigiese a la página de inicio de la web pero no se como.
Y otra cosa cuando recibo el correo electrónico en el asunto me aparece "nobody" y a mi me gustaría que apareciese el correo electrónico de la persona que lo ha puesto.
Espero que me puedas ayudar.
Gracias por tu contestación.
Estuve viendo tu código, reorganice y arregle algunas cosillas y parece haber quedado funcionando.
Quedó así:
<? if ($HTTP_POST_VARS){
           //Estoy recibiendo el formulario, compongo el cuerpo
        $cuerpo .= "Email: " . $_POST['email'] . "\n";
        //mando el correo...
        mail("[email protected]",$_POST['email'],$cuerpo);
        //doy las gracias por el envío
        //echo "Gracias por tu interes. En breve recibiras nuestro boletin.";
         //Redirecciono al home, esto debe hacerse antes de cualquier tag de html porque de lo contrario los headers ya no podrían modificase y no se realizaría la redirección
        header("Location:'/index.htm'");
   }
?>         
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>formulario</title>
</head>
<body>
<table width="100%">
<tr>
<td> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>
     <form action="" method="post" name="contactar.php" id="contactar.php">
<p><font face="Verdana, Arial, Helvetica, sans-serif"><br></font>
         <font size="3">Email:</font><input type="text" name="email" size="25">
         <br></font></p>
<p><input name="submit" type="submit" value="Enviar"></p>
</form>
</td>
</tr>
</table>
</body>
</html>
En tu caso deberás modificar donde dice Header("Location: '/index.htm'"); la url por la que quieras redireccionar.-
Atentamente. Manuel Fernández.-
Antes que nada muchas gracias por tu ayuda.
He puesto el código en el fichero pero sigue sin redireccionar. Cuando le pongo el mail y le pincho en enviar me manda a una pantalla en blanco con el mensaje:
Gracias por tu interés. En breve recibirás nuestro boletín.
Warning: Cannot modify header information - headers already sent by (output started at /home/comprars/public_html/principio natural/Templates/contactar.php:19) in /home/comprars/public_html/principio natural/Templates/contactar.php on line 28
El correo electrónico si que me llega, pero igual que antes.
Por cierto, ¿sabes cómo puedo hacer para que me salga la dirección de correo de la persona que lo manda en el remitente del correo electrónico que recibo?
Gracias.
El código que te envié debe quedar exactamente como está, tanto en la página del formulario como en contactar.php
A continuación te reenvío el código fuente con una modificación para que el mail del usuario aparezca como remitente:
<? if ($HTTP_POST_VARS){
           //Estoy recibiendo el formulario, compongo el cuerpo
        $cuerpo .= "Email: " . $_POST['email'] . "\n";
        //mando el correo...
        mail("[email protected]",$_POST['email'],$cuerpo,'From: '.$_POST['email']);
        //doy las gracias por el envío
        //echo "Gracias por tu interes. En breve recibiras nuestro boletin.";
         //Redirecciono al home, esto debe hacerse antes de cualquier tag de html porque de lo contrario los headers ya no podrían modificase y no se realizaría la redirección
        header("Location:'/index.htm'");
   }
?>         
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>formulario</title>
</head>
<body>
<table width="100%">
<tr>
<td> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td> </td>
</tr>
<tr>
<td>
     <form action="" method="post" name="contactar.php" id="contactar.php">
<p><font face="Verdana, Arial, Helvetica, sans-serif"><br></font>
         <font size="3">Email:</font><input type="text" name="email" size="25">
         <br></font></p>
<p><input name="submit" type="submit" value="Enviar"></p>
</form>
</td>
</tr>
</table>
</body>
</html>
PD: cuando cargues el formulario por primera vez dale actualizar al navegador para que tome los cambios.
Atentamente. Manuel Fernández.-
Nada, que no me funciona. No sé si soy yo, mira te digo paso por paso lo que he hecho.
Creo un html llamado formulario y le pongo el código como tu me has puesto.
Creo un php llamaco contactar y le pongo el mismo código.
Redirijo a una página html de agradecimiento
Pero no funciona, me aparece la página para poner el email, le pongo un email, le doy a enviar y me vuelve a mandar a la misma página "formulario" con el casillero borrado.
Llevo dos horas borrando código y haciendo pruebas y no hay manera.
Perdona que te moleste tanto, pero necesito que me sigas ayudando.
Mil gracias.
Por cierto, se me olvidaba.
Ahora no me llega ni siquiera el correo electrónico.
La página que estás poniendo como html, ponela como php, sin la página "contactar".
Supongamos que la página se llama contacto.html, entonces cambiala a contacto.php
Yo, al ver que tenías exactamente lo mismo en 2 páginas lo reduje a una sola que se reenvía a si misma, solo que cuando se completa el campo de "email", en vez de cargarse el formulario, automáticamente va a redirigir a la página que elijas.-
Atentamente. Manuel Fernández.-
Muchísimas gracias!
Después de horas combatiendo con el código ya he conseguido que me funcione perfectamente.
Muchas gracias por tu ayuda, no lo hubiese conseguido sin tu ayuda.
Por cierto ¿se puede dar un tiempo de unos 5 segundos que de las gracias y que luego redirija a index?
Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas