Si alguien encuentra la solución, agradecería que la compartiera con el resto del MUNDO!!! por que llevo ya un día sin parar de intentar buscar una solución definitiva.
Antes que nada en vuestro html debéis modificar la linea del formulario : <#form id="form3" METHOD="POST" ACTION="archivo.php"#> (sin almohadillas)usando el método post para el envío y llamando al archivo.php que crearéis a continuación.
Aquí el código PHP
//quitar la almohadilla entre <#?php
<#?php
//aqui nomail es el name del campo del formulario perteneciente al mail que introduce el cliente por el formulario
if(isset($_POST['nommail'])) {
// editar estas lineas con vuestros datos
$email_to = "desy_molinero@hotmail.com";
$email_subject = "Formulario consulta de la web Aura Ruiz Jimenez";
function died($error) {
// your error code can go here
echo "Hay un error ";
echo "These errors appear below.
";
echo $error."
";
echo "Porfavor vuelve a rellenar los campos correctamente.
";
die();
}
// validación de errores y lo mismo con los campos existentes del name de vuestro formulario
if(!isset($_POST['nomnom']) ||
!isset($_POST['apellidos']) ||
!isset($_POST['telf']) ||
!isset($_POST['nommail']))
{
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
//creación de las variables con los campos name del formulario
$nombre = $_POST['nomnom']; // required
$apellidos = $_POST['apellidos']; // required
$email_from = $_POST['nommail']; // required
$telefono = $_POST['telf']; // not required
//mensajes de errores
$error_message = "";
$email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
if(!preg_match($email_exp,$email_from)) {
$error_message .= 'El email que has escrito tiene un formato incorrecto, vuelve atras e intentalo de nuevo.
';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$nombre)) {
$error_message .= 'El nombre que has escrito tiene un formato incorrecto, vuelve atras e intentalo de nuevo.
';
}
if(!preg_match($string_exp,$apellidos)) {
$error_message .= 'The Last Name you entered does not appear to be valid.
';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Form details below.\n\n";
function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
//contenido del mensaje
$email_message .= "Nombre: ".clean_string($nombre)."\n";
$email_message .= "Apellidos: ".clean_string($apellidos)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Telefono: ".clean_string($telefono)."\n";
// create email headers
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($email_to, $email_subject, $email_message, $headers);
//si esta bien devuelve este mensaje echo y redirige a la web escrita
echo "Genial!!! ";
echo "";
}
?>
Una vez creado , y modificado el html, solo te queda mirar que todo esta correcto pasandole el validador web y subirlo a un servidor externo gratuito o de pago.
Si no te gusta esa versión de php aquí dejo otra que también funciona, pero eso si con el mismo problema de la función mail(). Que parece que funciona, pero no regresa email con los datos.
<#?php
if(!empty($_POST['nomnom']) AND !empty($_POST['nommail']) AND !empty($_POST['telf'])){
$to ="smx1.molinero.izquierdo.09@gmail.com";
$headers = "Content-Type: text/html; charset=iso-8859-1\n";
$headers .= "From:".$_POST['nomnom']."\r\n";
$tema="Contacto desde el Sitio Web";
$mensaje="
Nombre: | $_POST[nomnom] |
E-mail: | $_POST[nommail] |
Apellidos | $_POST[apellidos] |
Telefono: | $_POST[telf] |
Recuerda no dejar espacios entre la primera y la última línea en un archivo, sino probablemente te de un error de línea.
LO DICHO, SI ENCUENTRAS SOLUCIÓN PARA EL ENVÍO DE MAIL DESDE UN FORMULARIO, POR FAVOR DÍMELO!!!!!!!!
Creo que la solución se encuentra en modificar el archivo php.ini alojado en nuestro servidor web, pero ocmo de momento solo uso uno gratuito eso no es posible.
No hay comentarios:
Publicar un comentario