Forum Original-Design: Foro de tutoriales Dreamweaver y PSP

Forum Original-Design: Foro de tutoriales Dreamweaver y PSP (http://forum.original-design.es/index.php)
-   Tutoriales PHP y MySQL (http://forum.original-design.es/forumdisplay.php?f=10)
-   -   Codigo para enviar un formulario con un adjunto, funciona (http://forum.original-design.es/showthread.php?t=906)

marting_234 10-05-2007 06:16 PM

Codigo para enviar un formulario con un adjunto, funciona
 
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 software freeware software gratis software demo peliculas divx subtitulos peliculas tapas cd

wompygs 10-05-2007 06:28 PM

Muy bueno marting!!::bienn::::victoria::
Gracias por compartirlo con nosotros :D

LobitoStyle 11-09-2007 03:15 AM

bueno chevere gracias por el tuto pero la pregunta funca en cual kier hosting o solo en hostin pagado

LobitoStyle 11-09-2007 03:26 AM

ahi por lo visto k e probado no funca nose me sale esto ps ..

Warning: mail() has been disabled for security reasons in /home/virtual/sitio148152/www/enviar un formulario/mail_adjuntos.php on line 44

nose pork sera

LobitoStyle 11-09-2007 04:15 AM

no me funca nesecito de su ayuda

LobitoStyle 11-09-2007 04:21 AM

miren lo k sale aca les dejo el url intente enviar algo y veran k sale ps

http://reportandoselobitostyle.websp...rio/index.html

wompygs 11-09-2007 09:55 AM

pues... algo estaremos haciendo mal.. (es que no veo tu código, por lo que no puedo decirte lo que esta mal), lo que esta claro es que es sobre la l*nea 44 xD, repasa el código, seguro que es algun ; o alguna tonteria. O mejor mira, en la web puse un tutorial explicando ese código con un ejemplo ya ehco que funciona perfectamente

Enviar email con archivo adjunto
hazlo as* a ver si te va
Un saludo

andrexyx 11-25-2009 05:09 PM

me funcciona de maravilla
 
De Ppp.Madre el script.... despues de aber buscando 2 dias me he encontrado esto y nada mas ponerlo "Voila" funcciona a la primera con 5 archivos seguidos........
Ahora, el problema que tengo es que alguien me enseñe modificarlo que no se pueda enviar nada mas que ".jpg" y que no sea mayor de 1 mega la foto o 5 mega el total del adjunto.... sabe alguien explicarme??
Gracias de antemano...::bienn:: ::bienn::

wompygs 01-07-2010 01:50 AM

Claro, puedes poner un if con esas condiciones y dentro de él todo el rollo.. y en el else tu mensaje de error cuando el archivo no cumpla tus condiciones, espero que me entiendas, el esquema seria algo asi:
if (que el archivo sea jpg y menor de x megas) {El email se procesa y se envia}
Else {Mensaje de Error, el archivo no es jpg o ocupa demasiado}

danielccm 02-10-2010 09:38 AM

Quote:

Originalmente publicado por wompygs (Post 7509)
pues... algo estaremos haciendo mal.. (es que no veo tu código, por lo que no puedo decirte lo que esta mal), lo que esta claro es que es sobre la l*nea 44 xD, repasa el código, seguro que es algun ; o alguna tonteria. O mejor mira, en la web puse un tutorial explicando ese código con un ejemplo ya ehco que funciona perfectamente

Enviar email con archivo adjunto
hazlo as* a ver si te va
Un saludo

Genial este post.. ya lo estoy usando...

Pero... necesito que de paso me env*e unos campos que ya tengo con opciones... como hago para pasar esos campos (que estan en HTML) a este formulario?

GRACIAS!


Todas las horas son GMT. La hora es 04:55 AM.

Copyright 2007-2008