Foros del Web » Programando para Internet » PHP »

Como Enviar Datos De Formulario Y Fichero Adjunto Por Mail

Estas en el tema de Como Enviar Datos De Formulario Y Fichero Adjunto Por Mail en el foro de PHP en Foros del Web. Saludos, tengo este formulario y este codigo php, que sirven para enviar los datos del formulario a un mail y el fichero subirlo al servidor. ...
  #1 (permalink)  
Antiguo 28/05/2007, 19:15
 
Fecha de Ingreso: febrero-2007
Ubicación: Valparaiso, Chile.
Mensajes: 39
Antigüedad: 17 años, 1 mes
Puntos: 0
De acuerdo Como Enviar Datos De Formulario Y Fichero Adjunto Por Mail

Saludos, tengo este formulario y este codigo php, que sirven para enviar los datos del formulario a un mail y el fichero subirlo al servidor.

necesito que me puedan ayudar para modificar este codigo de manera que el fichero adjunto se envie junto con los datos del formulario a una casilla de email. estos son los codigos:

Formulario:
Cita:
<form action="procesa_prof.php" method="post" enctype="multipart/form-data" onsubmit="return valida(this);">
<p align="left" class="aajtextoGENERAL"><strong>1) Ingrese sus datos: </strong></p>
<p align="left"><span class="aajtextoGENERAL">Nombre(s):</span> <input type="text" name="nombre" size="50" value="" />
<span class="aajtextoGENERAL">* </span></p>
<p align="left"><span class="aajtextoGENERAL">Apellido(s):</span> <input type="text" name="apellido" size="50" value="" />
<span class="aajtextoGENERAL">* </span></p>
<p align="left"><span class="aajtextoGENERAL">Cargo:
</span>
<input type="text" name="cargo" size="30" value="" />
<span class="aajtextoGENERAL">Organizaci&oacute;n:</span>
<input type="text" name="organizacion" size="30" value="" />
</p>
<p align="left"><span class="aajtextoGENERAL">Direcci&oacute;n: </span>
<input type="text" name="direccion" size="72" value="" />
</p>
<p align="left"><span class="aajtextoGENERAL">Tel&eacute;fono:</span> <input type="text" name="fono" size="15" value="" />
<span class="aajtextoGENERAL">Fax:</span>
<input type="text" name="fax" size="15" value="" />
</p>
<p align="left">E-mail:
<input type="text" name="email" size="30" value="" />
<span class="aajtextoGENERAL">* </span><span class="aajtextoGENERAL">Pa&iacute;s:</span> <select name="pais">
<option value="Argentina">Argentina </option>
<option value="Bolivia">Bolivia </option>
<option value="Brasil">Brasil </option>
<option value="Chile" selected="selected">Chile </option>
<option value="Colombia">Colombia </option>
<option value="Costa rica">Costa Rica </option>
<option value="Ecuador">Ecuador </option>
<option value="El salvador">El Salvador </option>
<option value="Honduras">Honduras </option>
<option value="M&eacute;xico">M&eacute;xico </option>
<option value="Otro">Otro </option>
<option value="Peru">Per&uacute; </option>
<option value="Uruguay">Uruguay </option>
<option value="Venezuela">Venezuela </option>
</select>
&nbsp;</p>
<p align="left"><span class="aajtextoGENERAL"><strong>2) Adjunte su curr&iacute;culo:</strong></span><strong class="aajtextoGENERAL">&nbsp;</strong>
<input type="file" name="userfile" />
<span class="aajtextoGENERAL">*</span></p>
<p align="left"><span class="aajtextoGENERAL"><strong>3) Adjunte su trabajo:</strong></span>
<input type="file" name="userfile2" />
<span class="aajtextoGENERAL">&nbsp;*</span></p>
<p align="center">
<input type="submit" name="submit" value="Enviar datos" />
&nbsp; </p>
</form>
Codigo PHP:
Cita:
<?
//CODIGO QUE ASIGNA LOS VALORES DEL FORMULARIO A LA BASE DE DATOS.
include("conex.php");
$link=Conectarse();
$nombre=$_POST['nombre'];
$apellido=$_POST['apellido'];
$cargo=$_POST['cargo'];
$organizacion=$_POST['organizacion'];
$direccion=$_POST['direccion'];
$fono=$_POST['fono'];
$fax=$_POST['fax'];
$email=$_POST['email'];
$pais=$_POST['pais'];
$fecha = date('y/m/d'); //fecha en que se envia la postulacion a&ntilde;o/mes/dia
mysql_query("insert INTO participante(nombre,apellido,cargo,organizacion,di reccion,telefono,fax,email,pais,tipo_postulante,fe cha_postulacion)
values ('$nombre','$apellido','$cargo','$organizacion','$ direccion','$fono','$fax','$email','$pais','Partic ipante','$fecha')",$link);
//********************************

$nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], 'adjuntos/participante/'.$nombre_archivo))
//adjuntos: carpeta que define donde se guardaran los archivos adjuntos. formato: "nombre_archivo/"
{
echo "El archivo ha sido cargado correctamente, su postulaci&oacute;n se realizo con &eacute;xito.";
}
else{
echo "Ocurri&oacute; alg&uacute;n error al subir el archivo, porfavor vuelva atras e intentelo de nuevo.";
}
//***************************
//codigo encargado de enviar la informacion que tiene la ficha de inscripcion por mail

$para = '[email protected]'; //direccion de email de destino
$asunto = 'Nueva postulación en Inso Viña'; //asunto del mail

$mensaje = "Se ha realizado una nueva postulación como PARTICIPANTE a Inso Viña, los datos son los siguientes: \r\n\r\n";
$mensaje .= "Nombre: " . $nombre . "";
$mensaje .= " " . $apellido . " \r\n";
$mensaje .= "Cargo: " . $cargo . " \r\n";
$mensaje .= "Organización: " . $organizacion . " \r\n";
$mensaje .= "Dirección: " . $direccion . " \r\n";
$mensaje .= "Teléfono: " . $fono . " \r\n";
$mensaje .= "Fax: " . $fax . " \r\n";
$mensaje .= "E-mail: " . $email . " \r\n";
$mensaje .= "Fecha de postulación: " . date('d/m/y') . " \r\n";
$mensaje .= "País: " . $pais . " \r\n";

mail($para, $asunto, $mensaje); //datos de envio de mail
?>
ojala me puedan ayudar :D
  #2 (permalink)  
Antiguo 28/05/2007, 20:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Como Enviar Datos De Formulario Y Fichero Adjunto Por Mail

Te recomiendo uses la clase PHP Mailer, porque tiene ya funciones para adjuntar archivos.

Saludos.
  #3 (permalink)  
Antiguo 29/05/2007, 13:37
 
Fecha de Ingreso: febrero-2007
Ubicación: Valparaiso, Chile.
Mensajes: 39
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: Como Enviar Datos De Formulario Y Fichero Adjunto Por Mail

uff no entendi nada, no soy para nada experto en php.

encontre un codigo que realiza lo que quiero, realiza el envio de la informacion y el fichero sin problemas, pero me arroja unos errores, alguna forma de que no aparezcan? ya que la tarea la cumple tal como quiero.

este es el codigo que utilizo:
Cita:
<FORM ACTION="procesa_part.php" METHOD="POST" enctype="multipart/form-data" onsubmit="return valida(this);">
<P align="left"><span class="aajtextoGENERAL"><strong>1) Ingrese sus datos: </strong></span><strong> </strong></P>
<P align="left"><span class="aajtextoGENERAL">Nombre(s):</span> <input type="text" name="nombre" size="50" value="">
<span class="aajtextoGENERAL">* </span> </P>
<p align="left"><span class="aajtextoGENERAL">Apellido(s):</span> <input type="text" name="apellido" size="50" value="">
<span class="aajtextoGENERAL">*
</span> </P>

<p align="left"><span class="aajtextoGENERAL">Cargo:</span> <input type="text" name="cargo" size="30" value="">
<span class="aajtextoGENERAL">Organización:</span>
<input type="text" name="organizacion" size="" value="">
</P>

<p align="left"><span class="aajtextoGENERAL">Direcci&oacute;n:</span> <input type="text" name="direccion" size="72" value="">
</P>

<p align="left"><span class="aajtextoGENERAL">Tel&eacute;fono: </span>
<input type="text" name="fono" size="15" value="">
<span class="aajtextoGENERAL">Fax:</span>
<input type="text" name="fax" size="15" value="">
</p>

<p align="left"><span class="aajtextoGENERAL">E-mail:</span> <input type="text" name="email" size="30" value="">
<span class="aajtextoGENERAL">*
</span></p>
<p align="left"><span class="aajtextoGENERAL">Pa&iacute;s:</span> <SELECT NAME="pais">
<OPTION VALUE="Argentina">Argentina
<OPTION VALUE="Bolivia">Bolivia
<OPTION VALUE="Brasil">Brasil
<OPTION VALUE="Chile" SELECTED>Chile
<OPTION VALUE="Colombia">Colombia
<OPTION VALUE="Costa rica">Costa Rica
<OPTION VALUE="Ecuador">Ecuador
<OPTION VALUE="El salvador">El Salvador
<OPTION VALUE="Honduras">Honduras
<OPTION VALUE="México">México
<OPTION VALUE="Otro">Otro
<OPTION VALUE="Peru">Perú
<OPTION VALUE="Uruguay">Uruguay
<OPTION VALUE="Venezuela">Venezuela
</SELECT>

&nbsp;</p>
<p align="left" class="aajtextoGENERAL"><strong>2) Adjunte su curr&iacute;culo:</strong></p>
<p align="left">&nbsp;
<input type=file name="userfile">
<span class="aajtextoGENERAL">* </span></p>
<p align="center">
<INPUT TYPE=submit NAME="submit" VALUE="Enviar datos">
&nbsp;
</p>
</FORM>

Cita:
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]","Asunto del mensaje",
"Los datos introducidos en el formulario son:\n\n", "[email protected]"))
echo "Su formulario ha sido enviado con exito";

Última edición por franco_r3; 29/05/2007 a las 13:41 Razón: me equivoque
  #4 (permalink)  
Antiguo 29/05/2007, 14:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Como Enviar Datos De Formulario Y Fichero Adjunto Por Mail

Que errores?
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 17:58.