I am creating an application where the following code is the contact part, where the user adds his name, email, selects a charge, telephone and message. I just added a field to attach file, but I would like to know what the error is inside the code , since I only receive the user's data, but I do not receive any file to my mail. I do the tests from a server
Here I leave the PHP code.
<?php
//Variables para los campos de texto
$nombre = strip_tags($_POST["nombre"]);
$email = strip_tags($_POST["email"]);
$cargo = strip_tags($_POST["cargo"]);
$telefono = strip_tags($_POST["telefono"]);
$mensaje = strip_tags($_POST["mensaje"]);
//Variables para los datos del archivo
$nameFile = $_FILES['archivo']['name'];
$sizeFile = $_FILES['archivo']['size'];
$typeFile = $_FILES['archivo']['type'];
$tempFile = $_FILES['archivo']['tmp_name'];
$content = chunk_split(base64_encode(file_get_contents($_FILES['archivo']['tmp_name'])));
$fecha = time();
$fechaFormato = date('d/m/y', $fecha);
$corredoDestino = '[email protected]';
$eol = "\r\n";
//asunto del correo
$titulo = "Mensaje de la web recibido";
// -> mensaje en formato Multipart MIME
$cabecera = "MIME-VERSION: 1.0" .$eol;
$cabecera .= "Content-type: multipart/mixed; boundary=\"" .$fecha. "\"" .$eol;
$cabecera .= "Content-Transfer-Encoding: 7bit" .$eol;
$cabecera .= "From: {$mail}";
//Primera parte del cuerpo del mensaje
$cuerpo = "--=C=T=E=C=" .$eol;
$cuerpo .= "Content-type: text/plain; charset=utf-8" .$eol;
$cuerpo .= "Content-Transfer-Encoding: 8bit" .$eol;
$cuerpo .= $eol; //línea vacía
$cuerpo .= "Haz recibido un mensaje atravez de la página solmit.net" .$eol;
$cuerpo .= "Mensaje enviado por: " .$nombre. "" .$eol;
$cuerpo .= "ponerse en contacto con: " .$email. "" .$eol;
$cuerpo .= "Selecciono el cargo de: " .$cargo. "" .$eol;
$cuerpo .= "El teléfono de la persona es: " .$telefono. "" .$eol;
$cuerpo .= "Mensaje: " .$mensaje. "" .$eol;
$cuerpo .= $eol;
$cuerpo .= " Enviado el: " .$fechaFormato. "" .$eol;
$cuerpo .= $eol;
// -> Segunda parte del mensaje (archivo adjunto)
// -> encabezado de la parte
$cuerpo .= "--=C=T=E=C=" .$eol;
$cuerpo .= "Content-Type: application/octet-stream; name=\"" .$nameFile. "\"" .$eol;
$cuerpo .= "Content-Transfer-Encoding: base64" .$eol;
$cuerpo .= "Content-Disposition: attachment" .$eol;
$cuerpo .= "filename= " .$nameFile. "" .$eol;
$cuerpo .= $eol; //línea vacía
// $fp = fopen($tempFile, "rb");
// $file = fread($fp, $sizeFile);
// $file = chunk_split(base64_encode($file));
// $cuerpo .= $file .$eol;
// $cuerpo .= $eol; //linea vacia
// //Delimitador de final del mensaje.
// $cuerpo .= "--=C=T=E=C=--" .$eol;
//Enviar el correo
$envio = mail($corredoDestino, $titulo, $cuerpo, $cabecera);
if($envio) {
header('Location: index.html');
} else {
echo "Error de envío";
}
? >
This is the HTML part of the Form.
<form method="post" action="enviar.php" enctype="multipart/form-data">
<div class="form-group">
<input type="text" name="nombre" class="form-control" id="nombre" placeholder="NOMBRE" required>
</div>
<div class="form-group">
<input type="email" name="email" class="form-control" id="correo" placeholder="CORREO" required>
</div>
<div class="form-group">
<select class="form-control" name="cargo" required>
<option value="" disabled selected>Seleccionar Cargo</option>
<option value="Programador Web C#.Net">Programador Web C#.Net</option>
<option value="Programador Senior Web en C#.Net Bilingue">Programador Senior Web en C#.Net Bilingue</option>
</select>
</div>
<div class="form-group">
<input type="text" name="telefono" class="form-control" id="telefono" placeholder="TELÉFONO" required>
</div>
<div class="form-group">
<textarea class="form-control" rows="5" name="mensaje" placeholder="Escriba su mensaje" required></textarea>
</div>
<div class="label-form" style="text-align: center; font-size: 24px;">
<p class="p">Adjuntar CV:</p>
</div>
<div class="style-archivo">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file" name="archivo" id="archivo" placeholder="" size="30" />
</div>
<button class="btn-primary-f" type="submit">Enviar</button>
<p class="p">+ Información llámenos:</br> <span>0505050505</span></p>