Tengo un problema con un formulario y no se si hice bien al postearlo aca. Mi problema es el siguiente resulta que yo hice un formulario en html el cual llena una informacion y adjunta un o dos archivos archivos, el problema esta en que yo cuando coloco mi email de hotmail para recibir toda la informacion y el (los) archivo(s) adjunto(s) solo me manda la direccion de donde tomo ese archivo (C:\\Documents and Settings\\Administrator\\My Documents\\img_fondo.jpg), como hago para que me envie el archivo adjunto??.
Les envio el html:
Código :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Documento sin título</title> </head> <body> <form enctype="multipart/form-data" name="doit" action="env_attach.php" method="post"> <table cellpadding=0 cellspacing=0 width="295"><tr> <td width="295" height="26"> <font face="Arial, Helvetica, sans-serif" size="2"><b>Tu nombre:<br> </b></font> <input type="text" name="name" size=30><br> </td> </tr> <tr> <td width="295"> <font face="Arial, Helvetica, sans-serif" size="2"><b>Tu e-mail:<br> </b></font> <input type="text" name="from" size=30><br> </td> </tr> <tr> <td width="295"> <font face="Arial, Helvetica, sans-serif" size="2"><b>Archivo:<br> </b></font> <input type=file name="attach" size=30><br> </td> </tr> <td width="295"> <tr> <td width="295" height="23"><font face="Arial, Helvetica, sans-serif" size="2"><b>Asunto:<br> </b></font> <input type="text" name="subject" size=30> <br> </td> </tr></table> <p align="left"> <font face="Arial, Helvetica, sans-serif" size="2"><b>Mensaje:</b></font><br> <textarea name="body" rows=10 cols=35 wrap="message"></textarea><br><br> <input type="submit" name="sendmail" value="enviar"> </p> </form> </body> </html>
y el php:
Código :
<?php
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));
}
//Ejemplo de como usar:
if (form_mail("[email protected]",
"Envio de Formulario",
"Los datos introducidos en el formulario son:\n\n", $HTTP_POST_VARS[email]
)
)
echo "Su formulario ha sido enviado con exito";
?>
Gracias de antemano.
