Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fabyo

Formulario de Email com Anexo II

Recommended Posts

Atendendo a pedidos eu fiz um sistema de envio de varios anexos ao mesmo tempo por email

 

eu fiz só a parte do envio dos anexos onde você escolhe a quantidade de anexos ate no limite de 5 pode aumentar se quiser só auterar o javascript que cria os campos

 

e aparte dos campos nome, cidade etc... vcs implementam do jeito que achar melhor

e se vcs pegarem um 1 sistema de envio de anexo mais esse aqui da para vcs entenderem a logica e modificar da maneira que quiserem

 

mas qualquer duvida só perguntar, e nesse novo sistema ele mostra quantos anexos foram enviados realmente caso algum nao foi enviado você vera a quantidade que foi com sucesso

 

index.html

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Anexos</title>
<style> 
html, body {
margin:0;
padding:0;
}

#conteudo {
position:absolute;
width:340px;
height:60px;
top:50%;
left:50%;
margin-top:-30px;
margin-left:-170px;
}

.add {
position:absolute;
cursor:pointer;
}
</style>
<script type="text/javascript" src="funcoes.js"></script>
</head>

<body>
<form action="upload.php" method="post" enctype="multipart/form-data" id="form1">
<div id="conteudo">
	<input type="file" name="file[]" />
	<input type="button" value="Adicionar" onclick="Add()" />
	<span id="campos"></span><br />		
<p>
  <input type="submit" name="Submit" value="Enviar" />
</p>
 </div>
</form>
</body>
</html>

 

upload.php

<?php
if (getenv("REQUEST_METHOD") == "POST")
{

set_time_limit(0);
//só para teste mas auterem essa parte para pegar os dados via post $_POST
$nome	  = "nome";
$email	 = "email";
$mensagem  = "mensagem";
$assunto   = "assunto";
$anexos	= 0;
$boundary = "XYZ-" . date("dmYis") . "-ZYX";

$mens  = "--$boundary\n";	
$mens .= "Content-Transfer-Encoding: 8bits\n";
$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n"; 
$mens .= "$mensagem\n";
$mens .= "--$boundary\n";

for($i = 0; $i < count($_FILES["file"]["name"]); $i++)
{
if(is_uploaded_file($_FILES["file"]["tmp_name"][$i])){
	$fp = fopen($_FILES["file"]["tmp_name"][$i], "rb");
	$anexo = chunk_split(base64_encode(fread($fp, $_FILES["file"]["size"][$i])));		 
	fclose($fp);

	$mens .= "Content-Type: ".$_FILES["file"]["type"][$i]."\n name=\"".$_FILES["file"]["name"][$i]."\"\n";
	$mens .= "Content-Disposition: attachment; filename=\"".$_FILES["file"]["name"][$i]."\"\n";		
	$mens .= "Content-transfer-encoding:base64\n\n"; 
	$mens .= $anexo."\n";

	if($i + 1 == count($_FILES["file"]["name"])) 
		$mens.= "--$boundary--"; 
	else 
		$mens.= "--$boundary\n"; 

	if($_FILES["file"]['error'][$i] == 0) {
		$anexos++;
	}		
}	
}

$headers  = "MIME-Version: 1.0\n";
$headers .= "Date: ".date("D, d M Y H:i:s O")."\n";
$headers .= "From: \"Remetente\" <email_do_remetente>\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";


if(mail($email, $assunto, $mens, $headers)){
echo "O email foi enviado com sucesso, $anexos anexos";
} else {
echo "Nao foi possivel enviar o email";
}	
}

?>

 

funcoes.js

 

NumeroCampo = 0;
function Add() {
if(NumeroCampo < 4) {
	NumeroCampo++;
	data = "<span id='campo"+NumeroCampo+"'><input type=\"file\" name=\"file[]\" /> <input type=\"button\" value=\"Remover\" onclick=\"Delcampo('campo"+NumeroCampo+"')\" /></span>";
	campo = document.getElementById("campos");
	campo.innerHTML = campo.innerHTML + data;
}	
}

function Delcampo(IDDiv) {
var d = document.getElementById('campos');
var olddiv = document.getElementById(IDDiv);
d.removeChild(olddiv);
NumeroCampo--;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Fabyo disse:

você precisa configurar essa parte$nome = "nome";$email = "email";$mensagem = "mensagem";$assunto = "assunto";colocando $nome_do_campo = $_POST["nome_do_campo"];

Espectáculo, já está a funcionar!!!!obrigado Fabyo

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Adailton disse:

Perfeito Fabyo....Funcional.....

Amigos estou tentando por um formulario no meu site não consico pois não entento muinto, quaze nada estou acompanhando tudas essas dicas , mas não consico, tenho um formulario que um amigo me arrumou funciona beleza,mas não passa anexo e eu precisso que ele passe 4 anexo fou postar ele aqui ve se voce pode me ajudar , desde ja o meu obrigado visite o site www.mercadodetudo.com.brform_anuncio_asp<html><head><script language="JavaScript" type="text/JavaScript"><!--function Show(){alert("Ok");}//--></script><title>Elementos de Formulário</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#FFFAB9" text="#000000"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b><font color="#3366FF">mercadodetudo.com.br/ldna</font></b></font></b></font></div> <form name="form" method="post" action="form_anuncio_ok.asp"> <p><font size="2"><strong><font color="#3366FF" size="3" face="Verdana, Arial, Helvetica, sans-serif">Planos</font></strong></font></p> <ul> <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong><font color="#CC0000">Plano 01 - valor R$ 10,00 -</font> </strong> <font size="1">Envio de <strong>1 foto</strong> com tamanho de 640x480 píxels<strong>.</strong></font></font></li> <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong> <font color="#CC0000">Plano 02 - valor R$ 12,00 -</font> </strong> <font size="1">Envio de <strong>2 fotos</strong> com tamanho de 640x480 píxels.</font></font></li> <li><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> <strong><font color="#CC0000">Plano 03 - valor R$ 15,00 -</font> </strong><font size="1">Envio de <strong>4 fotos</strong> com tamanho de 640x480 píxels.</font></font></li> </ul> <p><strong><font color="#3366FF" size="3" face="Verdana, Arial, Helvetica, sans-serif">1º Passo</font></strong></p> <p align="center"> <select name="plano" id="plano"> <option selected>Escolha seu Plano</option> <option>------------------------------</option> <option>Plano 01 ----- R$ 10,00</option> <option>Plano 02 ----- R$ 12,00</option> <option>Plano 03 ----- R$ 15,00</option> </select> </p> <p><strong><font color="#3366FF" size="3" face="Verdana, Arial, Helvetica, sans-serif">2º Passo</font></strong></p> <p><font color="#CC0000" size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Atenção: </strong></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>ENVIAR FOTOS</strong> <input type="text" name="textfield"> <strong>Anexar</strong> <input type="text" name="textfield2"> <strong>Anexar</strong></font></p> <p align="center"> <input type="text" name="textfield3"> <font size="3"><strong>Anexar</strong> </font> <input type="text" name="textfield4"> <strong>Anexar</strong> </p> <table width="243" align="center" cellpadding="0" cellspacing="5"> <tr> <td colspan="2" bgcolor="#FFF78A"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Dados para Contato</strong></font></td> </tr> <tr> <td colspan="2"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Nome:<br> <strong> <input name="nome" type="text" id="nome" size="43" maxlength="40"> </strong></font></td> </tr> <tr> <td colspan="2"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">E-mail<br> <input name="email" type="text" id="email" size="43" maxlength="40"> </font></td> </tr> <tr> <td colspan="2"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Telefone:<br> <input name="fone" type="text" id="fone" size="43" maxlength="40"> </font></td> </tr> <tr> <td width="173"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Cidade:<br> <input name="cidade" type="text" id="cidade" size="20" maxlength="50"> </font></td> <td width="53"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Estado: <input name="uf" type="text" id="uf" size="2" maxlength="50"> </font></td> </tr> <tr> <td colspan="2"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> </font></td> </tr> <tr bgcolor="#FFF78A"> <td colspan="2"><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Informações sobre o produto</strong><br> </font></p> </td> </tr> <tr> <td colspan="2"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Categoria do Produto <font color="#CC0000" size="1">(Ex: Carros)</font><br> <input name="cat" type="text" id="cat" size="23" maxlength="20"> </font></td> </tr> <tr> <td colspan="2"><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Título do Produto <font color="#CC0000" size="1">(máx. 20 caracteres)</font>:<br> <input name="titulo" type="text" id="titulo" size="23" maxlength="20"> </font> </p> </td> </tr> <tr> <td colspan="2"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Descrição do Anúncio <font color="#CC0000" size="1">(máx. 200 caracteres)</font>:<br> <textarea name="desc" cols="33" rows="8" id="desc"></textarea> </font></td> </tr> <tr> <td colspan="2"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Preço:<br> <input name="preco" type="text" id="preco" size="13" maxlength="12"> </font></td> </tr> <tr> <td colspan="2" bgcolor="#FFF78A"><div align="center"> <input name="bt" type="submit" id="bt" value="Enviar"> </div></td> </tr> </table></form></body></html>form_anuncio_ok.asp<html><head><script language="JavaScript" type="text/JavaScript"><!--function Show(){alert("Ok");}//--></script><title>Elementos de Formulário</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#FFFAB9" text="#000000"><div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b><font color="#3366FF">mercadodetudo.com.br/ldna</font></b></font></b></font></div><p> </p><p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Seu anúncio foi enviado com sucesso.<br> Em breve entraremos em contato.</font></p><p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="http://www.mercadodetudo.com.br/">Voltar</a></font></p><p align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#666666"> <%Bodytext=Bodytext+ "SOLICITAÇÃO DE ANÚNCIO " & Now() & vbcrlfBodytext=Bodytext+ "-------------------------------------------------------" & vbcrlf & vbcrlfBodytext=Bodytext+ "Plano: " & request.form("plano") & vbcrlf & vbcrlfBodytext=Bodytext+ "DADOS DE CONTATO " & vbcrlfBodytext=Bodytext+ "-------------------------------------------------------" & vbcrlf & vbcrlfBodytext=Bodytext+ "Nome: " & request.form("nome") & vbcrlfBodytext=Bodytext+ "E-mail: " & request.form("email") & vbcrlfBodytext=Bodytext+ "Telefone: " & request.form("fone") & vbcrlfBodytext=Bodytext+ "Cidade: " & request.form("cidade") & vbcrlfBodytext=Bodytext+ "Estado: " & request.form("uf") & vbcrlf & vbcrlfBodytext=Bodytext+ "DADOS SOBRE O PRODUTO" & vbcrlfBodytext=Bodytext+ "-------------------------------------------------------" & vbcrlf & vbcrlfBodytext=Bodytext+ "Categoria: " & request.form("cat") & vbcrlfBodytext=Bodytext+ "Titulo: " & request.form("titulo") & vbcrlfBodytext=Bodytext+ "Descrição: " & request.form("desc") & vbcrlfBodytext=Bodytext+ "Preço: " & request.form("preco") & vbcrlfBodytext=Bodytext+"Endereço IP do Usuário " & request.servervariables("remote_addr") %> <%Set objNewMail = Server.CreateObject("CDONTS.NewMail")objNewMail.To = "contato@mercadodetudo.com.br" objNewMail.From = "contato@mercadodetudo.com.br"ObjNewMail.Bcc = "alexandre.werner@gmail.com"objNewMail.Subject = "Mensagem do Web Site"objNewMail.Body = BodytextobjNewMail.Send Set objNewMail = Nothing%></font></p></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

OLÁ!! EH Q TOW COMEÇANDO AGORA!!GOSTARIA DE SABER SE TODOS PODEM SER FEITO NO BLOCO DE NOTAS!!!HTMLPHPJAVASCRIPTVLW A TODOS!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

não funcionou o email nem o anexo:

 

erro do anexo:

 

linha: 8

carctere: 9

Erro: 'campo' é nulo ou não é um objeto.

código: 0

URL: //localhost/supertimaco96/~phpdesigner_outputlocal_tmp~1744.php

 

Este 'campo' representa o que nas funcoes.js

tenho que substitui por algum campo.

 

Erro do email: Nao foi possivel enviar o email

 

fiz umas mudanças:

<?phpif (getenv("REQUEST_METHOD") == "POST"){set_time_limit(0);//só para teste mas auterem essa parte para pegar os dados via post $_POST$para	  = $_POST['para'];$nome	  = $_POST['nome'];$email	 = $_POST['email']; // este email deve ser do usuário, então coloquei no remetente$mensagem  = $_POST['mensagem'];$assunto   = $_POST['assunto'];$anexos	= 0;$boundary = "XYZ-" . date("dmYis") . "-ZYX";$mens  = "--$boundary\n";	$mens .= "Content-Transfer-Encoding: 8bits\n";$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n"; $mens .= "$mensagem\n";$mens .= "--$boundary\n";for($i = 0; $i < count($_FILES["file"]["name"]); $i++){	if(is_uploaded_file($_FILES["file"]["tmp_name"][$i])){		$fp = fopen($_FILES["file"]["tmp_name"][$i], "rb");		$anexo = chunk_split(base64_encode(fread($fp, $_FILES["file"]["size"][$i])));		 		fclose($fp);		$mens .= "Content-Type: ".$_FILES["file"]["type"][$i]."\n name=\"".$_FILES["file"]["name"][$i]."\"\n";		$mens .= "Content-Disposition: attachment; filename=\"".$_FILES["file"]["name"][$i]."\"\n";				$mens .= "Content-transfer-encoding:base64\n\n"; 		$mens .= $anexo."\n";				if($i + 1 == count($_FILES["file"]["name"])) 			$mens.= "--$boundary--"; 		else 			$mens.= "--$boundary\n"; 				if($_FILES["file"]['error'][$i] == 0) {			$anexos++;		}			}	}$headers  = "MIME-Version: 1.0\n";$headers .= "Date: ".date("D, d M Y H:i:s O")."\n";$headers .= "From: \"Remetente\"$email\r\n";$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";if(mail($para, $assunto, $mens, $headers)){	echo "O email foi enviado com sucesso, $anexos anexos";} else {	echo "Nao foi possivel enviar o email";}	}?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola gente....desculpe mas sou nova em php e nunca fiz email mandando anexo ehehhee..mas eu nao achei onde colocar o enderço de email pra onde vai, tipo, quero q enviem para o meu email..onde eu coloco nesse script?

valeu! http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

fabyo..otimo :)tipo..acho que voce ia ajudar muitose fizesse algo com destino fixo..pra um email..enviar os dados pra um email fixo e tal..muita gente ta querendo saber isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá, peguei o form aki do imasters...axo q foi nesse tópico e no começo funcionou legal,não me lembro de ter alterado o código pra receber os anexos...só q agora tá dando pau :unsure: o primeiro anexo vem todo codificado e só o segundo vem normalalguém poderia me ajudar??aki ta o código do form:

<tr>         <td height="30" valign="middle"><div align="right"><font size="1"><strong><font face="Arial, Helvetica, sans-serif"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Anexar             Trabalhos</font>:</strong></font></strong></font></div></td>        <td height="30" valign="middle"> <div align="left"> <font size="1">              <input type="file" name="file[]" />            <font face="Verdana, Arial, Helvetica, sans-serif">(opção 1)</font></font></div></td>      </tr>      <tr>         <td height="30" valign="middle"><font size="1"> </font></td>        <td height="30" valign="middle"><font size="1">            <input type="file" name="file[]" />          </font> <font size="1" face="Verdana, Arial, Helvetica, sans-serif">(opção           2) </font><font size="1"> </font></font></td>      </tr>

e aki o da upload.php:

<?phpif (getenv("REQUEST_METHOD") == "POST"){set_time_limit(0);//só para teste mas auterem essa parte para pegar os dados via post $_POST$nome = $_POST["nome"];$email = $_POST["email"];$tipotrabalho = $_POST["trab1"];$tipotrabalho2 = $_POST["trab2"];$titulo = $_POST["titulo"];$titulo2 = $_POST["titulo2"];$anexos = 0;$boundary = "XYZ-" . date("dmYis") . "-ZYX";$mens = "--$boundary\n";    $mens .= "Content-Transfer-Encoding: 8bits\n";$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n\n"; $mens .= "Nome: $nome <br>";$mens .= "Email: $email <br>" ;$mens .= "Tipo de Trabalho(opção 1):$tipotrabalho <br>";$mens .= "Título(opção 1): $titulo <br>";$mens .= "Eixo(opção 1): $eixo1 <br>";$mens .= "Tipo de Trabalho(opção 2):$tipotrabalho2 <br>";$mens .= "Título(opção 2): $titulo2\n";$mens .= "Eixo(opção 2): $eixo2 <br>" ;$mens .= "--$boundary\n";for($i = 0; $i < count($_FILES["file"]["name"]); $i++){    if(is_uploaded_file($_FILES["file"]["tmp_name"][$i])){        $fp = fopen($_FILES["file"]["tmp_name"][$i], "rb");        $anexo = chunk_split(base64_encode(fread($fp, $_FILES["file"]["size"][$i])));                 fclose($fp);        $mens .= "Content-Type: ".$_FILES["file"]["type"][$i]."\n name=\"".$_FILES["file"]["name"][$i]."\"\n";        $mens .= "Content-Disposition: attachment; filename=\"".$_FILES["file"]["name"][$i]."\"\n";                $mens .= "Content-transfer-encoding:base64\n\n";         $mens .= $anexo."\n";                if($i + 1 == count($_FILES["file"]["name"]))             $mens.= "--$boundary--";         else             $mens.= "--$boundary\n";                 if($_FILES["file"]['error'][$i] == 0) {            $anexos++;        }            }    }$headers  = "MIME-Version: 1.0\n";$headers .= "Date: ".date("D, d M Y H:i:s O")."\n";$headers .= "From: \"$email\r\n";$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";$assunto = "Inscrição de Trabalhos";if(mail("email", $assunto, $mens, $headers)){    echo "<p align=\"center\"><font color=\"#000000\" size=\"2\" face='Verdana, Arial, Helvetica, sans-serif'>O email foi enviado com sucesso, $anexos anexos</font></p>";	echo "<p align=\"center\"><font color=\"#000000\" size=\"2\" face='Verdana, Arial, Helvetica, sans-serif'><a href=\"java script:history.back();\" target=\"_self\"><strong><<                         Voltar >></strong></a></font></p>";} else {    echo "<p align=\"center\"><font color=\"#000000\" size=\"2\" face='Verdana, Arial, Helvetica, sans-serif'>Não foi possivel enviar o email</font></p>";	echo "<p align=\"center\"><font color=\"#000000\" size=\"2\" face='Verdana, Arial, Helvetica, sans-serif'><a href=\"java script:history.back();\" target=\"_self\"><strong><<                         Voltar >></strong></a></font></p>";}    }?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigo, eu sei que já tem um tempo esse post, mas eu estou tentando usar o seu escript e funcionou legal, mas os anexo que vai enviar so vai do segundo em diante o primeiro não vai de jeito nenhum, se eu tentar enviar so um não vai. Vem a mensagem enviado com sucesso 0 anexo, a mensagem chega mas o anexo não quem pode ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola amigos, estou com duvida nesse formulario quanto a esses tres arquivos: index.html - upload.php - funcoes.js Onde eu configuro o email destino, para qual as informações e os anexos devem ser enviados????????Grato,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá...sou super leiga em php....Tentei usar o codigo do php pra validar um formulario que fiz q tem os seguintes campos:cargoárea + o envio do arquivo, que no caso, será pra arquivos ".docs"...Tentei de tudo!Já busquei vários tutos.. e nada...Só não entendi o JS... onde eu coloco esse código java??Poxa.. desculpas.. mas to tentando aprender na marra..Bjussssssssssss

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.