0

Tengo una web realizada en HTML5 y en la parte de contacto, hice un form normalito, pero a la hora de hacer el PHP, como resultado, tengo TODO EL MAIL como debería ser, menos el Nombre de la persona y el mensaje que redacto.

Antes que nada decirles, que lo estoy probando con el hosting de la pagina y como destinatario mi mail.

HTML del Form:

<div class="col-md-12">
          <h3 class="column-title">Estamos encantados de escucharte</h3>
          <form id="contact-form" action="contact-form.php" method="post">
            <div class="error-container"></div>
              <div class="row">
                 <div class="col-md-4">
                    <div class="form-group">
                      <label>Nombre</label>
                      <input class="form-control form-control-name" name="nombre" placeholder="Su nombre" type="text" required>
                    </div>
                 </div>
                 <div class="col-md-4">
                    <div class="form-group">
                       <label>Email</label>
                       <input class="form-control form-control-email" name="email" placeholder="Su email" type="email" required>
                    </div>
                 </div>
                 <div class="col-md-4">
                    <div class="form-group">
                      <label>Asunto</label>
                      <input class="form-control form-control-subject" name="asunto" placeceholder="Asunto" required>
                    </div>
                 </div>
              </div>
              <div class="form-group">
                <label>Mensaje</label>
                <textarea class="form-control form-control-message" name="mensaje" placeholder="Escriba su mensaje..." rows="10" required></textarea>
              </div>
              <div class="text-right"><br>
                 <button class="btn btn-primary solid blank" type="submit">Enviar </button> 
              </div>
           </form>
        </div>

PHP en cuestion:

    <?php
$nombre = $_POST['nombre'];
$mail = $_POST['email'];
$empresa = $_POST['mensaje'];

$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

$mensaje = "Este mensaje fue enviado por " . $nombre . ",\r\n";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());

$para = 'mimail@gmail.com';
$asunto = 'Mail de SG';

mail($para, $asunto, utf8_decode($mensaje), $header);

header("Location:index.html");
?>

Desde ya agradecerles por el tiempo en leer y ojala en contestar! Saludos cordiales.

Capt.Teach
  • 1,129
  • 2
  • 12
  • 18
Kensu
  • 1
  • 4
  • 1
    Te planteo añadir al principio de tu php `print_r($_POST)` a ver que te llega en el envio del formulario, y que tienes definido en tu post. – Jakala Feb 27 '20 at 07:37
  • Agregue al principio del PHP esa linea y ahora no me llega ni el mail, pero me produjo un error_log y dice `[27-Feb-2020 05:50:08 America/Argentina/Buenos_Aires] PHP Parse error: syntax error, unexpected '$nombre' (T_VARIABLE) in /home/sgilumin/public_html/contact-form.php on line 3` – Kensu Feb 27 '20 at 08:53
  • 1
    El único problema podría ser debido a esto: `utf8_decode($mensaje)`. Todo lo demás parece normal. Prueba así: `mail($para, $asunto, $mensaje, $header);` No uses `utf_decode` sobre las variables, si el contenido se está produciendo mal codificado considera resolver al problema a un nivel superior: configuración del HTML y/o del servidor. Mira [esta respuesta](https://es.stackoverflow.com/a/59510/29967) para más detalles sobre ese particular. – A. Cedano Feb 27 '20 at 10:41

0 Answers0