Foros del Web » Programando para Internet » PHP »

Formulario con Archivo Adjunto

Estas en el tema de Formulario con Archivo Adjunto en el foro de PHP en Foros del Web. Bueno, pues llevo un año con PHP. Un año que me lleva torturando el PHP Mi reto ahora, es hacer un formulario, pero me gustaría ...
  #1 (permalink)  
Antiguo 14/09/2003, 08:18
 
Fecha de Ingreso: septiembre-2003
Ubicación: España
Mensajes: 1
Antigüedad: 14 años, 2 meses
Puntos: 0
Mensaje Formulario con Archivo Adjunto

Bueno, pues llevo un año con PHP. Un año que me lleva torturando el PHP Mi reto ahora, es hacer un formulario, pero me gustaría que éste llevase un archivo adjunto. He leído por miles de sitios pero no consigo hacer nada . Porfa plis podrías ayudarme a insertar en el siguiente código, el código (valga la redundancia) para poner un fichero adjunto. De antemano muchiiiiiiiiiiiiiiiiiiiiiiiisimas gracias

Código PHP:
<? 
if (!$HTTP_POST_VARS){ 
?> 
<form action="envia_form_php.php" method=post>
  <font color="#999999" size="1" face="Verdana"><strong>Asunto 
    </strong></font></p>
  <p align="left"> 
    <input type=text name="asunto" size=16 style="color: #FFFFFF; border: 1px solid #333333; background-color: #000000; font-family:Verdana">
  </p>
  <p align="left"> <strong><span class="default"> <font color="#999999" size="1" face="Verdana">Tu E-mail</font></span></strong></p>
  <p align="left"> 
    <input type=text name=email size=16 style="color: #FFFFFF; border: 1px solid #333333; background-color: #000000; font-family:Verdana">
  </p>
  <p align="left"><strong><span class="default"> <font color="#999999" size="1" face="Verdana">Tu Web 
    (en caso de afiliaci&oacute;n)</font></span></strong></p>
  <p align="left"> 
    <input type=text name=web size=16 style="color: #FFFFFF; border: 1px solid #333333; background-color: #000000; font-family:Verdana">
  </p>
  <p align="left"> <BR>
    <strong><span class="default"> <font color="#999999" size="1" face="Verdana">Archivo Adjunto (Fanfic, 
    Captura, Banner...):</font></span></strong></p>
  AQUÍ ESTÄ EL PROBLEM!!!!  </p>
  <p align="left"><span class="default"> <font color="#999999" size="1" face="Verdana"><strong>Comentario:</strong></font></span></p>
  <p align="left"> 
    <textarea name=coment cols=32 rows=6 style="color: #FFFFFF; border: 1px solid #333333; background-color: #000000; font-family:Verdana"></textarea>
    <br>
  </p>
  <p align="center"> 
    <input type=submit value="Enviar" style="color: #FFFFFF; border: 1px solid #333333; background-color: #000000; font-family:Verdana">
  </p>
</form> 
<? 
}else{ 
    
//Estoy recibiendo el formulario, compongo el cuerpo 
    
$cuerpo "Formulario enviado\n"
    
$cuerpo .= "Nombre: " $HTTP_POST_VARS["nombre"] . "\n"
    
$cuerpo .= "Asunto: " $HTTP_POST_VARS["asunto"] . "\n"
    
$cuerpo .= "Email: " $HTTP_POST_VARS["email"] . "\n"
    
$cuerpo .= "Web: " $HTTP_POST_VARS["web"] . "\n"
    
$cuerpo .= "Comentarios: " $HTTP_POST_VARS["coment"] . "\n"

    
//mando el correo... 
    
mail("[email protected]","Formulario recibido",$cuerpo); 

    
//doy las gracias por el envío 
    
echo "El e-mail ha sido enviado correctamente. Gracias."

?>
  #2 (permalink)  
Antiguo 14/09/2003, 14:19
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Pues lo del adjunto es un file upload mas un envio de un fichero en un email. Para el upload hay informacion de sobra. Y para enviar un email con fichero, mejor olvidate de la funcion mail(), y usa una clase, creo que la phpmailer es buena.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 14/09/2003, 15:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Enviar un archivo "adjunto" en un e-mail pasa por qué conozcas el protocolo que usas y (en este caso) .. el formato MIME que debes usar (multiparte y demás historias) .. Todo esto lo describen perfectamente en las RFC's correspondientes ...

El caso que en PHP .. .la función mail() sólo te deja el último parámetro como "generico" y dice algo así: "aquí pon tus cabeceras que correspondan" ..

De "serie" no tiene implementado la función mail() el evio de archivos adjuntos ni otras cosas (como e-mail en HTML) ..así que debes implementar dichas cabeceras y "MIME" para hacer lo que pretendes.

Cómo siempre .. "la rueda" ya la inventaron otras personas ..así que si no quieres complicarte .. usa alguna classe para tal fin.

PHP mailer
http://phpmailer.sourceforge.net

es bastante bueno. De todas formas .. no está de más conocer "por encima" como trabaja el tema de "mail".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:40.