PHP - Capturar bastantes variables (PHP) para enviar a correo a través de formulario html

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado su posición en 25 puestos en PHP (en relación al último mes)
Gráfica de PHP

Capturar bastantes variables (PHP) para enviar a correo a través de formulario html

Publicado por Henry (4 intervenciones) el 08/10/2018 16:17:56
El detalle es que al realizar la captura de variables mediante php a formulario, captura algunas y solo muestra al llegar el correo algunas de estas, la incógnita mía y agradecería mucho que pudiese resolverse es si hay un limite para capturar variables y enviar estas a un correo mediante php, tomando en cuenta que una de estas es un archivo adjunto (logre que se envié), pero el resto de datos esenciales no llegan, si trato de enviar mas deja este de funcionar. Agradezco su orientación

Codigo PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
 
if($_POST && isset($_FILES['my_file'])) {
    $recipient_email = 'example@gmail.com'; //Direccion de correo de quien recibe el mail
    $subject         = "Asunto del mensaje.";
 
    //Capturo los datos enviados por POST 
    $email     = filter_var($_POST["email"], FILTER_SANITIZE_STRING);
    $nombre    = filter_var($_POST["nombre"], FILTER_SANITIZE_STRING);
    $telefono= filter_var($_POST["telefono"], FILTER_SANITIZE_STRING);
    $ciudad= filter_var($_POST["ciudad"], FILTER_SANITIZE_STRING);
    $mensaje   = filter_var($_POST["mensaje"], FILTER_SANITIZE_STRING);
 
 
    $reply_to_email = filter_var($_POST["email"], FILTER_SANITIZE_STRING);
 
 
    //Armo el cuerpo del mensaje    
 
    $msm = $mensaje. "Email: \n" . $email . "\n" . $nombre . "\n";
 
    //Obtener datos del archivo subido 
    $file_tmp_name    = $_FILES['my_file']['tmp_name'];
    $file_name        = $_FILES['my_file']['name'];
    $file_size        = $_FILES['my_file']['size'];
    $file_type        = $_FILES['my_file']['type'];
    $file_error       = $_FILES['my_file']['error'];
 
    if($file_error > 0)
    {
        die('Error al subir el archivo. No se adjunt&oacute; ning&uacute;n archivo');
    }
 
    //Leer el archivo y codificarlo el contenido para armar el cuerpo del email
    $handle = fopen($file_tmp_name, "r");
    $content = fread($handle, $file_size);
    fclose($handle);
    $encoded_content = chunk_split(base64_encode($content));
 
    $boundary = md5("pera");
    //Encabezados
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "From:".$email."\r\n";
    $headers .= "Reply-To: ".$reply_to_email."" . "\r\n";
    $headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n";
 
    //Texto plano
    $body = "--$boundary\r\n";
    $body .= "Content-Type: text/plain; charset=ISO-8859-1\r\n";
    $body .= "Content-Transfer-Encoding: base64\r\n\r\n";
    $body .= chunk_split(base64_encode($msm));
 
    //Adjunto
    $body .= "--$boundary\r\n";
    $body .="Content-Type: $file_type; name=".$file_name."\r\n";
    $body .="Content-Disposition: attachment; filename=".$file_name."\r\n";
    $body .="Content-Transfer-Encoding: base64\r\n";
    $body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n";
    $body .= $encoded_content;
 
    //Enviar el mail
    $sentMail = @mail($recipient_email, $subject, $body, $headers);
 
    if($sentMail) //Muestro mensajes segun se envio con exito o si fallo
    {
        echo"
            <h2>Gracias por tu contacto, $cvnombre</h2>
            <div>Tu mensaje fu&eacute; enviado con &eacute;xito.</div>
        ";
    }else{
        echo "
            <h2>Se produjo un error y su pedido no pudo ser enviado</h2>
        ";
    }
 
}
else{
    echo "
        <div>No se adjunt&oacute; ning&uacute;n archivo</div>
    ";
}
 
 
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Capturar bastantes variables (PHP) para enviar a correo a través de formulario html

Publicado por Kathyu (905 intervenciones) el 08/10/2018 19:44:08
Que yo sepa no hay restricción, pruebe antes ver si de verdad llegan todas las variables, muestre si le da algún error.

1
2
3
4
5
//Pseudocodigo
<?php
echo '<pre>';
echo $_POST;
echo '</pre>';
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha aumentado su posición en 25 puestos en PHP (en relación al último mes)
Gráfica de PHP

Capturar bastantes variables (PHP) para enviar a correo a través de formulario html

Publicado por Henry (4 intervenciones) el 09/10/2018 05:04:48
no marca error en ninguna linea de código, captura variables pero al hacer el envío estas no llegan completas solo captura algunas o ninguna. O únicamente el archivo file .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kathyu
Val: 1.802
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Capturar bastantes variables (PHP) para enviar a correo a través de formulario html

Publicado por Kathyu (905 intervenciones) el 09/10/2018 16:08:06
Suba todo el proyecto, así se prueba y se puede buscar mejor el error, que librería usa para enviar el email?

Al menos yo, no he tenido un error parecido, algo de variables del form a de ser, por eso recomiendo adjuntar por lo menos el proyecto de contacto con el form y todo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar