Hola quiero un formulario que quede así:
Nombre:
E-mail:
Sugerencias:
Y que se envíe a mi correo, ¿como lo puedo hacer?
Este es el formulario que yo uso. Lo hizo Volvoreta. Yo solo copio y pego los codigos:
El formulario es este, es sencillito, tienes que crear 4 hojas
En la hoja Html donde va el formulario, se escribe este código dentro del body:
Código:
<table width="99%" border="0px" cellpadding="0px" cellspacing="0px">
<FORM action="envio.php" method="get">
<tr>
<td class="contacto1">Nombre y apellidos:*</td>
<td class="contacto"><input name="nombre" type="text " size="32"></td>
</tr>
<tr>
<td class="contacto1">Nombre de empresa :</td>
<td class="contacto" ><INPUT TYPE="text" NAME="empresa" SIZE="32"></td>
</tr>
<tr>
<td class="contacto1">Población*:</td>
<td class="contacto"><INPUT TYPE="text" NAME="poblacion"SIZE="32"></td>
</tr>
<tr>
<td class="contacto1">Profesión:</td>
<td class="contacto"><INPUT TYPE="text" NAME="profesion" SIZE="32"></td>
</tr>
<tr>
<td class="contacto1">Teléfono fijo:</td>
<td class="contacto"><INPUT NAME="telefonof" TYPE="text" SIZE="12" MAXLENGTH="12"></td>
</tr>
<tr>
<td class="contacto1">Teléfono móvil: *</td>
<td class="contacto">
<INPUT TYPE="text" NAME="telefonomovil" SIZE="12" MAXLENGTH="12"></td>
</tr>
<tr>
<td class="contacto1">e-mail: *</td>
<td class="contacto"><INPUT TYPE="text" NAME="email" SIZE="32"></td>
</tr>
<tr>
<td class="contacto1">Realice su consulta: *</td>
<td class="contacto"><TEXTAREA NAME="texto" ROWS="5"COLS="25"></TEXTAREA></td>
</tr>
<tr>
<td class="contacto1"><INPUT TYPE="submit" VALUE= "Enviar "></td>
<td class="contacto">* Campos obligatorios</td>
</tr>
</FORM>
</table>
En una hoja que se llame envio.php, escribes esto, tal cual:
Código:
<?
/* aqui se incializan variables de PHP */
if (phpversion() >= "4.2.0") {
if ( ini_get('register_globals') != 1 ) {
$supers = array('_REQUEST',
'_ENV',
'_SERVER',
'_POST',
'_GET',
'_COOKIE',
'_SESSION',
'_FILES',
'_GLOBALS' );
foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
} else {
if ( ini_get('register_globals') != 1 ) {
$supers = array('HTTP_POST_VARS',
'HTTP_GET_VARS',
'HTTP_COOKIE_VARS',
'GLOBALS',
'HTTP_SESSION_VARS',
'HTTP_SERVER_VARS',
'HTTP_ENV_VARS'
);
$_GET['nombre']=$nombre;
$_GET['edad']=$edad;
foreach( $supers as $__s) {
if ( (isset($$__s) == true) && (is_array( $$__s
) == true) ) extract( $$__s, EXTR_OVERWRITE );
}
unset($supers);
}
}
/* ------------------------------------------------------------------ */
/* DE AQUI EN ADELANTE PUEDES EDITAR EL ARCHIVO */
/* ------------------------------------------------------------------ */
/* define cual va a ser la hoja que se abrirá en caso de error*/
$login_page = "error.html";
/* reclama que estén rellenos los campos obligatorios del formulario */
if($email=="")
{include($login_page);
exit();
}
if($nombre=="")
{include($login_page);
exit();
}
if($poblacion=="")
{include($login_page);
exit();
}
if($texto=="")
{include($login_page);
exit();
}
/* ------------------------------------------------------------------ */
/* aquí se especifica la pagina de respuesta en caso de envío exitoso */
$respuesta="correcto.html";
/* AQUÍ ESPECIFICAS EL CORREO AL CUAL SE ENVÍAN LOS DATOS */
$para ="[correo eliminado] ";
/* AQUI ESPECIFICAS EL SUJETO DEL EMAIL */
$sujeto = "Formulario de informacion";
/* aquí se construye el encabezado del correo*/
$encabezado = "From: $nombre <$email>";
$encabezado .= "\nReply-To: $email";
$encabezado .= "\nX-Mailer: PHP/" . phpversion();
/* con esto se captura la IP del que envío el mensaje */
$ip=$REMOTE_ADDR;
/* las siguientes líneas arman el mensaje */
$mensaje .= "Nombre = $nombre\n";
$mensaje .= "Empresa = $empresa\n";
$mensaje .= "Poblacion = $poblacion";
$mensaje .= "Profesion= $profesion\n";
$mensaje .= "Telefono fijo = $telefonof\n";
$mensaje .= "Telefono movil = $telefonomovil\n";
$mensaje .= "email = $email\n";
$mensaje .= "Comentario = $texto\n";
$mensaje .= "SU DIRECCION IP = $ip\n";
/* aqui se intenta enviar el correo, si no se
tiene éxito se da un mensaje de error */
if(!mail($para, $sujeto, $mensaje, $encabezado))
{
echo "<h1>No se pudo enviar el Mensaje</h1>";
exit();
}
else
{
/* aqui redireccionamos a la pagina de respuesta */
echo "<meta HTTP-EQUIV='refresh' content='1;url=$respuesta'>";
}
?>
Cambia el email, pon el tuyo
Ahora te creas dos páginas una que se llame error.html que dará el mensaje de error si no están cubiertos los campos obligatorios, y otra que se llame correcto.html que se abrirá si se ha mandado el mensaje correctamente.
Cuelgaló en el servidor para ver como funciona, si no lo cuelgas no lo podrás hacer funcionar con vista prévia, porque no te lo permite el archivo php. Para cualquier duda, me lo dices.
Ve eliminando los apartados que no quieras que aparezcan en el formulario hasta que tengas los que quieres.
Un saludo. Gracias Volvoreta:P
Aquí tienes otro (del manual que yo hice). Ya he puesto los campos que quieres. Necesitas una hoja html y otra php.
En la html pones el formulario siguiente:
<form action="formulario.php" method="post" enctype="multipart/form-data" name="form1">
<table border="0">
<tr>
<td width="200"><div align="right">Nombre:</div></td>
<td width="200"><div align="left">
<label>
<input name="nombre" type="text" id="nombre" />
</label>
</div></td>
</tr>
<tr>
<td><div align="right">E-mail:</div></td>
<td><div align="left">
<label>
<input name="email" type="text" id="email" />
</label>
</div></td>
</tr>
<tr>
<td><div align="right">Sugerencias:</div></td>
<td><div align="left">
<label>
<textarea name="sugerencias" id="sugerencias"></textarea>
</label>
</div></td>
</tr>
<tr>
<td><div align="right">
<input name="restablecer" type="reset" id="restablecer" value="Restablecer" />
</div></td>
<td><div align="left">
<input name="Enviar" type="submit" id="Enviar" value="Enviar" />
</div></td>
</tr>
</table></form>
Lo que está en rojo es el nombre de la hoja php que crees. En la hoja php pon ese formulario tambien y añade este código dentro del body:
<?php
$sendTo = "[correo eliminado]";
$subject = "nombre del mensaje";
$nombre = $_POST["nombre"];
$email = $_POST["email"];
$sugerencias = $_POST["sugerencias"];
$headers .= "";
$message = "Nombre: " . $nombre . "\nEmail: " . $email . "\nSugerencias: " . $sugerencias;
mail($sendTo, $subject, $message, $headers);
?>
Con esto ya funciona al subirlo al servidor. Al rellenar la html te manda a la php mandando el correo, y hemos puesto tambien el formulario en la php por si quiere rellenar otro.
Saludos, Juanma
no me envía el correo y tengo mi php así:
<?php
$sendTo = "Aquí he puesto mi e-mail";
$subject = "nombre del mensaje";
$nombre = $_POST["nombre"];
$email = $_POST["email"];
$sugerencias = $_POST["sugerencias"];
$headers .= "";
$message = "Nombre: " . $nombre . "\nEmail: " . $email . "\nSugerencias: " . $sugerencias;
mail($sendTo, $subject, $message, $headers);
?>
Asegúrate de que pusiste bien el correo, de que la página php la guardaste como formulario.php (si no cambiaste el código) y que esté con la extensión php y que tengas activado lo de php en tu servidor.
También puede ser que tarde un ratillo (5 minutos) en llegar el mensaje, depende del servidor.
Saludos, Juanma
He hecho la prueba y me llegó el mensaje, si lo anterior está bien, mira la bandeja de correo no deseado o spam (a mi me llego ahi)
Saludos, Juanma
pues, entonces preguntales a tu servidor
si te tienen habilitada la opcion mailer de php
(despues de mucho sufrir, me anime a preguntarle al mio y me dijo que no) :twisted: aunque era de paga :twisted:
checalo y nos avisas
Que raro, si a mi si me funciona con el código tal como te lo dije. A ver si pusiste tu correo o algo mal, o el servidor no soporta php (en tu ordenador no funciona :lol: ).
bueno pues si no me llega, idoo tiene un servicio que te hace un formulario, lo haré así.
tambien pudes usar el que te ofrece melodysoft
saludos