PHP - Problema con formulario php

 
Vista:
sin imagen de perfil

Problema con formulario php

Publicado por Maria (1 intervención) el 23/05/2014 13:37:56
Cada vez que intento enviar el formulario me lanza estos errores:

Warning: mail() [function.mail]: Filename cannot be empty in /home/u000000000/public_html/provisional/enviar.php on line 67

Warning: Cannot modify header information - headers already sent by (output started at /home/u0000000/public_html/provisional/enviar.php:67) in /home/u0000000000/public_html/provisional/enviar.php on line 70

Agradecería que algún alma caritativa me echara una mano. Por más cambios que hago no consigo que el formulario funcione.

El código que utilizo es el siguiente:

<?php
if(isset($_POST['email'])) {

// EDITAR LAS SIGUIENTES 2 LÍNEAS
$enviar_a = "[email protected]";
$asunto = "Desde mi web";


function died($error) {
echo "Lo siento, pero hay errores en el formulario que enviaste. ";
echo "Estos errores se muestran a continuación:<br /><br />";
echo $error."<br /><br />";
echo "Por favor vuelve atrás y corrigelo.<br /><br />";
die();
}

if(!isset($_POST['nombre']) ||
!isset($_POST['telefono']) ||
!isset($_POST['email']) ||
!isset($_POST['asunto']) ||
!isset($_POST['mensaje'])) {
died('Lo siento, pero parece que hay un problema con el formulario que enviaste. ');
}

$nombre = $_POST['nombre'];
$telefono = $_POST['telefono'];
$email_from = $_POST['email'];
$asunto = $_POST['asunto'];
$mensaje = $_POST['mensaje'];

$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 .= 'La dirección de email no es válida, revísala.<br />';
}
$string_exp = "/^[A-Za-z .'-]+$/";
if(!preg_match($string_exp,$nombre)) {
$error_message .= 'Es obligatorio escribir algún nombre.<br />';
}

if(strlen($mensaje) < 5) {
$error_message .= 'En la caja de opinión debes escribir al menos 5 caracteres.<br />';
}
if(strlen($error_message) > 0) {
died($error_message);
}
$email_message = "Datos del formulario:\n\n";

function clean_string($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}

$email_message .= "Nombre y Apellidos: ".clean_string($nombre)."\n";
$email_message .= "Telefono: ".clean_string($telefono)."\n";
$email_message .= "Email: ".clean_string($email_from)."\n";
$email_message .= "Asunto: ".clean_string($asunto)."\n";
$email_message .= "Mensaje: ".clean_string($mensaje)."\n";


// Creo cabeceras para el email
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($enviar_a, $asunto, $email_message, $headers);

if( mail($enviar_a, $asunto, $email_message, $headers) )
{
//Mensaje enviado, redireccionamos a la web correcta
header ("Location: ok.html");
}
else
{
//El mensaje no se pudo enviar, redireccionamos a una web, o podemos desplegar un mensaje
//header ("Location: mensaje-no-enviado.php");
echo "No se pudo enviar el mail";
}}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder