Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Gabosaki en 02 de Agosto 2017, 04:13

Título: PHP Warning: mail() expects parameter 4 to be string, array given in error
Publicado por: Gabosaki en 02 de Agosto 2017, 04:13
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
Título: Re:Falla en Script de envio de correo
Publicado por: joher60 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;
?>

Título: Re:Falla en Script de envio de correo
Publicado por: Gabosaki 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
Título: Re:Falla en Script de envio de correo
Publicado por: joher60 en 04 de Agosto 2017, 19:41
Creo que debes definir el
Código: [Seleccionar]
value="" de cada Input.