Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/06/2010, 09:30
Avatar de mateo777
mateo777
 
Fecha de Ingreso: octubre-2009
Mensajes: 56
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Necesito ayuda !!

Bueno pensandolo mejor como aportacion mejor dejo yo mismo el texto html y el php , por si alguien le hace falta.

Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">
  3. <title>Documento sin t&iacute;tulo</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  5. </head>
  6.  
  7. <form name='formulario' id='formulario' method='post' action='enviar.php' target='_self' enctype="multipart/form-data">
  8. <p>Nombre <input type='text' name='Nombre' id='Nombre'></p>
  9. <p>E-mail
  10. <input type='text' name='email' id='email'>
  11. </p>
  12. <p>Asunto
  13. <input type='text' name='asunto' id='asunto' />
  14. </p>
  15. <p>Mensaje
  16. <textarea name="mensaje" cols="50" rows="10" id="mensaje"></textarea>
  17. </p>
  18. <p>Adjuntar archivo: <input type='file' name='archivo1' id='archivo1'></p>
  19. <p>
  20. <input type='submit' value='Enviar'>
  21. </p>
  22. </form>
  23. </body>
  24. </html>

Ahora la hoja accion llamada en este caso enviar.php

Código PHP:
Ver original
  1. <?php
  2. function form_mail($sPara, $sAsunto, $sTexto, $sDe)
  3. {
  4. $bHayFicheros = 0;
  5. $sCabeceraTexto = "";
  6. $sAdjuntos = "";
  7.  
  8. if ($sDe)$sCabeceras = "From:".$sDe."\n";
  9. else $sCabeceras = "";
  10. $sCabeceras .= "MIME-version: 1.0\n";
  11. foreach ($_POST as $sNombre => $sValor)
  12. $sTexto = $sTexto."\n".$sNombre." = ".$sValor;
  13.  
  14. foreach ($_FILES as $vAdjunto)
  15. {
  16. if ($bHayFicheros == 0)
  17. {
  18. $bHayFicheros = 1;
  19. $sCabeceras .= "Content-type: multipart/mixed;";
  20. $sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";
  21.  
  22. $sCabeceraTexto = "----_Separador-de-mensajes_--\n";
  23. $sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
  24. $sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";
  25.  
  26. $sTexto = $sCabeceraTexto.$sTexto;
  27. }
  28. if ($vAdjunto["size"] > 0)
  29. {
  30. $sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
  31. $sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";;
  32. $sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
  33. $sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";
  34.  
  35. $oFichero = fopen($vAdjunto["tmp_name"], 'r');
  36. $sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
  37. $sAdjuntos .= chunk_split(base64_encode($sContenido));
  38. fclose($oFichero);
  39. }
  40. }
  41.  
  42. if ($bHayFicheros)
  43. $sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
  44. return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
  45. }
  46.  
  47. //cambiar aqui el email -- escribir aqui el email de destino
  48. if (form_mail("[email protected]", $_POST[asunto],
  49. "Los datos introducidos en el formulario son:\n\n", $_POST[email]))
  50. echo "Su formulario ha sido enviado con exito";
  51. ?>


Y aqui un completisimo formulario de contacto al que se le puede poner un adjuto o los que se necesiten.

Nota: no debeis olvidar que teneis que hacer una carpeta llamada tmp_name en el sevidor y darle orden de escritura 777 por que el archivo que subais primero pasa al servidor a esa carpeta para archivos temporales y de ahi la envia en el mail a vuestro correo y tambien no debeis olvidar ponerle el email vuestro por qu si no no sabra donde enviarlo y dara error , bueno por mi parte duda resuelta y aqui dejo este hilo para quien venga detras mia y lo necesite . saludos.

Última edición por mateo777; 09/04/2011 a las 11:42