Pregunta:
Fecha: 18-01-2018 08:43:19
(En Español)
Como para enviar desde un formulario de contacto con la opción de adjuntar un archivo PHP[No resuelta]
Ayuda , por favor .. Votos: 0 - Respuestas: 1 - Vistas: 12 Compartir en: Google Facebook Twitter LinkedIn LinkRespuestas:
-
Fecha: 18-01-2018 10:43:01 Te dejo una funcion que sirve para ello, pero te recomiendo ocupes alguna clase como es: PHPMailer,
Saludos...
Stryfe™
El formulario:
<form name='formulario' id='formulario' method='post' action='enviar.php' target='_self' enctype="multipart/form-data"> <p>Nombre <input type='text' name='Nombre' id='Nombre'></p> <p>E-mail <input type='text' name='email' id='email'> </p> <p>Asunto <input type='text' name='asunto' id='asunto' /> </p> <p>Mensaje <textarea name="mensaje" cols="50" rows="10" id="mensaje"></textarea> </p> <p>Adjuntar archivo: <input type='file' name='archivo1' id='archivo1'></p> <p> <input type='submit' value='Enviar'> </p> </form>
function form_mail($sPara, $sAsunto, $sTexto, $sDe) { $bHayFicheros = 0; $sCabeceraTexto = ""; $sAdjuntos = ""; if ($sDe)$sCabeceras = "From:".$sDe."\n"; else $sCabeceras = ""; $sCabeceras .= "MIME-version: 1.0\n"; foreach ($_POST as $sNombre => $sValor) $sTexto = $sTexto."\n".$sNombre." = ".$sValor; foreach ($_FILES as $vAdjunto) { if ($bHayFicheros == 0) { $bHayFicheros = 1; $sCabeceras .= "Content-type: multipart/mixed;"; $sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n"; $sCabeceraTexto = "----_Separador-de-mensajes_--\n"; $sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n"; $sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n"; $sTexto = $sCabeceraTexto.$sTexto; } if ($vAdjunto["size"] > 0) { $sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n"; $sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";; $sAdjuntos .= "Content-Transfer-Encoding: BASE64\n"; $sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n"; $oFichero = fopen($vAdjunto["tmp_name"], 'r'); $sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"])); $sAdjuntos .= chunk_split(base64_encode($sContenido)); fclose($oFichero); } } if ($bHayFicheros) $sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n"; return(mail($sPara, $sAsunto, $sTexto, $sCabeceras)); }
La ocupas de la siguiente manera:
if (form_mail("stryfe.eme@gmail.com", $_POST[asunto],
"Los datos introducidos en el formulario son:\n\n", $_POST[email]))
echo "Su formulario ha sido enviado con exito";
Votos: 1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
