Autor Tema: PHP Warning: mail() expects parameter 4 to be string, array given in error  (Leído 3661 veces)

Gabosaki

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Buenas noches,  solicito de su apoyo ya que no puedo determinar la falla en un código para enviar correo desde un formulario html.

el código que utilizo es el siguiente:

Código: [Seleccionar]
<?php
$name       
= @trim(stripslashes($_POST['name'])); 
$from       = @trim(stripslashes($_POST['email'])); 
$telephone  = @trim(stripslashes($_POST['telephone'])); 
$subject    = @trim(stripslashes($_POST['service'])); 
$message    = @trim(stripslashes($_POST['message']));
$to        = 'correo@miempresa.com';
$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: {$name} <{$from}>";
$headers[] = "Reply-To: <{$from}>";
$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();

mail($to$subject$message$headers);

die;

?>

dar click en el boton de enviar, manda el mensaje de envio correcto pero no llegan los correos a la bandeja de entrada y al revisar el log de errores del servidor arroja el siguiente mensaje:

PHP Warning:  mail() expects parameter 4 to be string, array given in /home/public_html/email.php on line 16

Segun entiendo el problema es el array, pero no puedo determinar correctamente la falla.

agradezco de antemano su atención y ayuda.

Saludos
« Última modificación: 10 de Septiembre 2017, 20:53 por Ogramar »

joher60

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:Falla en Script de envio de correo
« Respuesta #1 en: 04 de Agosto 2017, 00:10 »
Saludos intentando ayudar, he modificado el codigo suministrado a ver si le funciona..!  :)

Código: [Seleccionar]
<?php
$name       
= @trim(stripslashes($_POST['name']));
 
$from       = @trim(stripslashes($_POST['email'])); 
$telephone  = @trim(stripslashes($_POST['telephone']));
 
$subject    = @trim(stripslashes($_POST['service'])); 
$message    = @trim(stripslashes($_POST['message']));
$to          'correo@miempresa.com';
$headers "MIME-Version: 1.0";
$headers .= "Content-type: text/plain; charset=iso-8859-1";
$headers .= "From: {$name} <{$from}>";
$headers .= "Reply-To: <{$from}>";
$headers .= "Subject: {$subject}";
$headers .= "X-Mailer: PHP/".phpversion();
mail($to$subject$message$headers);die;
?>

« Última modificación: 04 de Agosto 2017, 20:46 por pedro,, »

Gabosaki

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re:Falla en Script de envio de correo
« Respuesta #2 en: 04 de Agosto 2017, 19:13 »
muchas gracias joher60,

el código me sirvió de mucho, y perdona que te vuelva a molestar, el problema ahora es que no registra los valores de los campos.

al enviar el correo, lo envía vacio. ya revisé el códig del formulario y en teoria todo funciona bien

el código es el siguiente:

Código: [Seleccionar]
<div class="contact-form wow fadeIn" data-wow-duration="1000ms" data-wow-delay="600ms">
          <div class="row">
            <div class="col-sm-6">
              <form id="main-contact-form" name="contact-form" method="post" action="email.php">
                <div class="row  wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="300ms">
                  <div class="col-sm-6">
                    <div class="form-group">
                      <input type="text" name="name" id="name" class="form-control" placeholder="Nombre" required="required">
                    </div>
                  </div>
                  <div class="col-sm-6">
                    <div class="form-group">
                      <input type="email" name="email" class="form-control" placeholder="Correo Electrónico" required="required">
                    </div>
                  </div>
                  <div class="col-sm-6">
               <div class="form-group">
                <input type="text" name="telephone" class="form-control" placeholder="Teléfono" required="required">
                    </div>
                    </div>
                    <div class="col-sm-6">
                   <div class="form-group">
                  <select name="service" id="service" class="form-control" placeholder="Servicio">
        <option value="valor">Seleccione una opción...</option>
        <option value="primero">uno</option>
    <option value="segundo">dos</option>
        <option value="tercero">tres</option>
    <option value="cuarto">cuatro</option>
    <option value="quinto">cinco</option>
        </select>
                </div>
                </div>
                <div class="form-group">
                  <textarea name="message" id="message" class="form-control" rows="4" placeholder="Mensaje" required></textarea>
                </div>                       
                <div class="form-group">
                  <button type="submit" class="btn-submit">Enviar</button>
                </div>
            </form>
ojalá me puedas ayudar, nuevamente agradezco de antemano el apoyo.

Saludos
« Última modificación: 04 de Agosto 2017, 20:42 por pedro,, »

joher60

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:Falla en Script de envio de correo
« Respuesta #3 en: 04 de Agosto 2017, 19:41 »
Creo que debes definir el
Código: [Seleccionar]
value="" de cada Input.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".