Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2014, 05:38
janochecer
 
Fecha de Ingreso: mayo-2014
Mensajes: 4
Antigüedad: 9 años, 10 meses
Puntos: 0
Pregunta Problema con formulario php

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:

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['email'])) {
  3.      
  4.     // EDITAR LAS SIGUIENTES 2 LÍNEAS
  5.     $enviar_a = "[email protected]";
  6.     $asunto = "Desde mi web";
  7.      
  8.      
  9.     function died($error) {
  10.         echo "Lo siento, pero hay errores en el formulario que enviaste. ";
  11.         echo "Estos errores se muestran a continuación:<br /><br />";
  12.         echo $error."<br /><br />";
  13.         echo "Por favor vuelve atrás y corrigelo.<br /><br />";
  14.         die();
  15.     }
  16.      
  17.     if(!isset($_POST['nombre']) ||
  18.         !isset($_POST['telefono']) ||
  19.         !isset($_POST['email']) ||
  20.         !isset($_POST['asunto']) ||
  21.         !isset($_POST['mensaje'])) {
  22.         died('Lo siento, pero parece que hay un problema con el formulario que enviaste. ');      
  23.     }
  24.      
  25.     $nombre = $_POST['nombre'];
  26.     $telefono = $_POST['telefono'];
  27.     $email_from = $_POST['email'];
  28.     $asunto = $_POST['asunto'];
  29.     $mensaje = $_POST['mensaje'];
  30.      
  31.     $error_message = "";
  32.     $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/';
  33.   if(!preg_match($email_exp,$email_from)) {
  34.     $error_message .= 'La dirección de email no es válida, revísala.<br />';
  35.   }
  36.     $string_exp = "/^[A-Za-z .'-]+$/";
  37.   if(!preg_match($string_exp,$nombre)) {
  38.     $error_message .= 'Es obligatorio escribir algún nombre.<br />';
  39.   }
  40.  
  41.   if(strlen($mensaje) < 5) {
  42.     $error_message .= 'En la caja de opinión debes escribir al menos 5 caracteres.<br />';
  43.   }
  44.   if(strlen($error_message) > 0) {
  45.     died($error_message);
  46.   }
  47.     $email_message = "Datos del formulario:\n\n";
  48.      
  49.     function clean_string($string) {
  50.       $bad = array("content-type","bcc:","to:","cc:","href");
  51.       return str_replace($bad,"",$string);
  52.     }
  53.      
  54.     $email_message .= "Nombre y Apellidos: ".clean_string($nombre)."\n";
  55.     $email_message .= "Telefono: ".clean_string($telefono)."\n";
  56.     $email_message .= "Email: ".clean_string($email_from)."\n";
  57.     $email_message .= "Asunto: ".clean_string($asunto)."\n";
  58.     $email_message .= "Mensaje: ".clean_string($mensaje)."\n";
  59.      
  60.      
  61. // Creo cabeceras para el email
  62. $headers = 'From: '.$email_from."\r\n".
  63. 'Reply-To: '.$email_from."\r\n" .
  64. 'X-Mailer: PHP/' . phpversion();
  65. @mail($enviar_a, $asunto, $email_message, $headers);  
  66.  
  67.  if( mail($enviar_a, $asunto, $email_message, $headers) )
  68. {
  69.     //Mensaje enviado, redireccionamos a la web correcta
  70.     header ("Location: ok.html");
  71. }
  72. else
  73. {
  74.    //El mensaje no se pudo enviar, redireccionamos a una web, o podemos desplegar un mensaje
  75.    //header ("Location: mensaje-no-enviado.php");
  76.    echo "No se pudo enviar el mail";
  77. }}
  78. ?>

Última edición por Triby; 23/05/2014 a las 17:39 Razón: Código en highlight