McAnam » Foros » Foro PHP
Codigo para enviar un formulario con un adjunto, funciona perfecto

1 al 10 de 35 Respuestas »
Páginas:


  martin        06/09/2007 13:43:38
Copio y Pego el codigo y html y el segundo codigo que utiliza en php.

Aclaro como funciona por si alguien lo necesita:

Esto lo puse en un archivo htm y lo llame formulario:



<form name='formulario' id='formulario' method='post' action='mail_adjuntos.php' target='_self' enctype="multipart/form-data">
<p>Nombre <input type='text' name='Nombre' id='Nombre'></p>
<p>Apellidos <input type='text' name='Apellidos' id='Apellidos'></p>
<p>

E-mail <input type='text' name='E-mail' id='E-mail'></p>

<p>Adjuntar archivo: <input type='file' name='archivo1' id='archivo1'></p>
<p>
<input type='submit' value='Enviar formulario'>
</p>
</form>






Lo que esta mas abajo lo puse en un archivo php y lo llame (tiene que llamarse si o si): mail_adjuntos.php :


Esto lo puse en un archivo php y lo llame: mail_adjuntos.php :


<?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("mail_de_destino@hotmail.com","Asunto del mensaje",
"Los datos introducidos en el formulario son:\n\n", "mail_de_origen@mail.com"))
echo "Su formulario ha sido enviado con exito";
?>


Termino un renglon arriba el codigo php. Solo tienen que reemplazar mail_de_destino@hotmail.com por un mail de ustedes a donde llegara todo el formulario con el adjunto.

En: Asunto del mensaje, ponen como quieren que figure el asunto:

Y por ultimo: mail_de_origen@mail.com, aca ponen otra direccion de mail que tengan ustedes, esta haria una funcion como de ser la cuenta desde donde se  estaria enviando el formulario, (no tiene nada que ver con la dire que despues coloque el usuario en el formulario, la del formulario funcionando es una cuenta que cada usuario quiera colocar).

Ej tengo la cuenta 123@yahoo.com y 123@hotmail.com las dos son mias y una la coloco reemplazando en donde dice: mail_de_destino@hotmail.com y la otro en donde dice: mail_de_origen@mail.com

Quedaria: mail_de_destino@hotmail.com reemplazo por: 123@yahoo.com  aca es donde quiero que lleguen el formulario y el adjunto.

mail_de_origen@mail.com reemplazo por: 123@hotmail.com por ej.

Espero a alguien le sirva la explicacion.
Saludos
Un abrazo.

___________________________________________________________________________
Tengo mi pagina en http://econohosting.com.ar hosting gratis sin publicidades

http://Altayagoo.com super buscador tematico autos automoviles automotores audiocar talleres repuestos







  Pablo        10/10/2007 17:04:08
Martin, aplique tu codigo y a mi tambien me ha funcionado perfecto, pero tengo una duda:
Como puedo hacer para que me llegue en el mail, el nombre de la persona y su mail?
dicho formulario lo quiero aplicar a una web en donde el usuario pueda enviarme por mail, una foto. Pero tambien quiero que me pueda poner su nombre y su mail.
Se puede hacer esto?

gracias
Pablo

  christian        29/11/2007 03:46:22
hola vi tu codigos pero como soy nuevo en esto de poner formularios y libros de visita mi duda es tengo una pagina web y tiene un formulario pero no se como hacer para que  cuando los visitantes pongan sus sugerencias en mi web como hago para que se manden aun email mio sin que salga la ventanita que te pide tu nombre de email y clave  lo que quiero es que se manden directamente gracias

  Julio Maldonado        26/12/2007 23:14:11
Martin

Estoy probando el envio de un formulario en PHP pero aun no me funciona.  Me podrias enviar el archivo html y el php para poder probar.  Gracias

  Alejandro        28/01/2008 00:28:08
Muchas gracias, Martín. Muy bien explicado y sale perfecto.

  Paolo        01/04/2008 08:13:47
hola una pregunta Martin, el archivo php, es el mismo, en el caso que se le agreguen mas cosas en el archivo htm? o sea si al archivo htm le agrego por ejemplo que pongan rubros, u otras cosas. es el mismo el archivo php o hay que retocarlo? como veras mucha idea no tengo, pero entiendo tu explicación.

  WalteR Bove        14/04/2008 16:33:17
Puede ser que en algunos hosting no funcione.  Estoy haciendo prurebas en dos hosting diferentes y en uno me funciona y en el otro no.

  camilo        30/04/2008 01:25:52
mira yo pongo el codigo html y en la misma parte el codigo html el formulario aparece bien pero cuando se envia el correo la pagina de php se queda en blanco y al final el e-mail no me llega al correo electronico y de verdad que hago todo lo que ud dice paso a paso, yo la pagina la tengo en geocities que pasa????????
gracias.

  Mikaela        26/06/2008 23:58:12
Hola. Tengo un problemita (mentira, tengo varios, pero no entremos en temas personales, ajja).
Para hacerlo simple, alguien podría pasarme algún hosting en el que el código funcione bién?

Dejo mi corrito mika.91@hotmail.es

  fernando        17/09/2008 02:14:11
hol aocmo estas, e usado tu codigo pero no me funciona, al enviar algo me dice que se envio, pero reviso el mail yno llega nada. espero puedas ayudarle, este es mi msn arlofe86@eventualcolima.com

  Carlos        16/12/2008 20:48:20
Me pasa lo mismo que a Pablo. Me gustaría saber como puedo hacer que si el usuario pone su mail, y al mandar el formulario me aparezca en el campo De: (from) su email.


1 al 10 de 35 Respuestas »
Páginas:
Volver al foro PHP