Ver Mensaje Individual
  #5 (permalink)  
Antiguo 18/08/2014, 10:51
Triby2
 
Fecha de Ingreso: julio-2014
Mensajes: 334
Antigüedad: 9 años, 9 meses
Puntos: 30
Respuesta: Formulario con php

he copiado tu ejemplo, a porte que tienes que poner el nombre de las variables post con el mismo que cada input que envias, te faltó configurar el $email_from, esa variable queda vacía al enviar apretar el botón.

Con esos dos cambios ya te funcionará! A mi me funciona tu código con los códigos, te lo paso modificado, solo tienes copiarlo a un archivo php.

Te lo he modificado un poco ya que he visto que has utilizado javascript para simular el mismo efecto que realiza el parámetro "placeholder" de los imputs. Y como es un archivo de prueba he quitado que los datos los envie a otro archivo php, todo se realiza desde el mismo archivo.

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['email'])) {
  3.  
  4.     // Debes editar las próximas dos líneas de código de acuerdo con tus preferencias
  5.     $email_from = "[email protected]";
  6.     $email_subject = "Contacto desde el sitio web";
  7.    
  8.         // Aquí se deberían validar los datos ingresados por el usuario
  9.         if(!isset($_POST['name']) || !isset($_POST['email']) || !isset($_POST['message'])) {
  10.        
  11.             echo "<b>Ocurrió un error y el formulario no ha sido enviado. </b><br />";
  12.             echo "Por favor, vuelva atrás y verifique la información ingresada<br />";
  13.             die();
  14.         }
  15.    
  16.     $email_message = "Detalles del formulario de contacto:\n\n";
  17.     $email_message .= "Nombre: " . $_POST['name'] . "\n";
  18.     $email_message .= "E-mail: " . $_POST['email'] . "\n";
  19.     $email_message .= "Comentarios: " . $_POST['message'] . "\n\n";
  20.    
  21.    
  22.     // Ahora se envía el e-mail usando la función mail() de PHP
  23.     $headers = 'From: '.$email_from."\r\n".
  24.     'Reply-To: '.$email_from."\r\n" .
  25.     'X-Mailer: PHP/' . phpversion();
  26.     mail($_POST['email'], $email_subject, $email_message, $headers);
  27.    
  28.     echo "¡El formulario se ha enviado con éxito!";
  29. }
  30. ?>
  31.  
  32. <form action="" method="post" class="contactForm">
  33. <p class="form">
  34.     <input class="field" type="text" name="name" id="name" placeholder="Nombre" />
  35.     <input class="field" type="text" name="email" id="email" placeholder="@" />
  36.     <input class="field" type="text" name="subject" id="subject" placeholder="4+9=?" />
  37. </p>
  38. <div class="clear"></div>
  39. <p class="form" style="width:100%; float:left;"><textarea class="textarea" rows="4" name="message" id="message" cols="1">Message*</textarea><br /><br /></p>
  40.  
  41. <input type="submit" value="SEND" class="sendForm" id="submit" />
  42. <p style="float:left;"><br />*Necessary</p>
  43. </form>
  44. <div class="clear"></div>
  45. <div id="status"></div>

NOTA: si no has sabido que los fallos eran esos, es porque no debes de tener configurado tu servidor para que te muestre errores. Eso se hace en el archivo php.ini. tienes que buscar la variable "error_reporting" y añadirle el valor "E_ALL", de esa manera verás todos los errores que vayas teniendo cada vez que pruebes el código en el navegador. Y así la próxima vez podrás solventar estos pequeños errores por ti mismo. Un saludo.

Última edición por Triby2; 18/08/2014 a las 10:54 Razón: Se me olvidó añadir la NOTA