Ir para conteúdo

POWERED BY:

Arquivado

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

Rafael Leoni

Form com anexo

Recommended Posts

Boa tarde rapaziada,

 

tenho um form funcionando perfeitamente!

A validação está perfeita e estou recebendo a "resposta" dele. Tudo certinho!

Porém preciso inserir campos para anexar arquivos (doc, txt...).

 

E isso eu realmente não estou conseguindo fazer.

Inseri os campos, mas não sei o que inserir no código para recebê-los.

 

Segue a url do form: http://www.ativesolucoes.com.br/website/pages/cadastrese.php

e a do arquivo "que envia" o mesmo: http://www.ativesolucoes.com.br/website/pa...rCadastrese.php

 

 

Se alguém puder ajudar, agradeço.

Rafael Leoni

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ignora o meu post anterior... Não vi que era para anexar e-mail... Achei que era só pra incluir em um form um campo de upload.

 

Agora para o seu problema, dá uma procurada sobre a classe phpmailer.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ignora o meu post anterior... Não vi que era para anexar e-mail... Achei que era só pra incluir em um form um campo de upload.

 

Agora para o seu problema, dá uma procurada sobre a classe phpmailer.

 

Carlos Eduardo

Fala Carlos,

 

obrigado pela tentativa... enviando o vídeo aula.

 

Estou usando a classe phpmailer. Só que apenas pra enviar o form mesmo.

Pra anexar os arquivos no email que recebo eu não sei o que fazer.

 

Alguém sabe?

 

 

abs,

Rafael Leoni

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para anexar no PHPMailer, use isto:

 

$mail->AddAttachment('diretorio/arquivo.doc');

Fala André,

 

cara eu sou um designer que está apredendo php... não sei quase nada... tô metendo a cara mesmo pra aprender.

 

Você pode ser mais específico? Tipo em qual arquivo e em qual linha coloco esse código?

Tenho dois arquivos na pasta libs: class.phpmailer.php e class.smtp.php

 

Se precisar posso colar o código aqui...mas ele é imenso.

 

 

abs,

Rafael Leoni

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nenhum deles. No teu script que envia o e-mail.

 

Carlos Eduardo

Fala Carlos,

 

É claro!!! Vacilo meu.... mas de qualquer forma não estou sabendo inserir.

Tentei de todas as formas e deu erro.

 

Pode me ajudar, por favor?

 

É o campo CNJ Arquivo. Esse aqui: <b>CNPJ - Arquivo: </b>".$records['CNPJ2']."<br / ><br / >

 

Segue abaixo o código do script que envia o e-mail:

 

 

<?

 

if($_POST){

 

$retorno = "";

 

$records = $_REQUEST;

$retorno .= "

<HTML>

<HEAD>

<style>

TD {color:#666666;font-family:Verdana;font-size:12px; LINE-HEIGHT: 120%;}

A:{TEXT-DECORATION: none; color:#666666}

A:HOVER {TEXT-DECORATION: underline; color:#666666}

A:VISITED:HOVER {TEXT-DECORATION: underline; color:#666666}

</style>

</HEAD>

<BODY topmargin=\"0\" leftmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">

<TABLE WIDTH=\"400\" HEIGHT=\"400\" CELLPADDING=\"0\" CELLSPACING=\"0\" BORDER=\"0\" bgcolor=\"#ffffff\" align=\"center\" style=\"border:#333333 solid 1px\">

<TR>

<TD WIDTH=\"40\">   </TD>

<TD HEIGHT=\"62\" align=\"center\"><br / ></TD>

<TD WIDTH=\"40\">   </TD>

</TR>

<TR>

<TD WIDTH=\"40\"> </TD>

<TD VALIGN=\"top\" >

<center><B>Cadastro Website</B></center><br / ><br / >

<b>Raz„o Social: </b> ".$records['razaoSocial']."<br / ><br / >

<b>Nome Fantasia: </b>".$records['nomeFantasia']."<br / ><br / >

<b>EndereÁo: </b>".$records['endereco']."<br / ><br / >

<b>Bairro: </b>".$records['bairro']."<br / ><br / >

<b>Cidade: </b>".$records['cidade']."<br / ><br / >

<b>UF: </b>".$records['uf']."<br / ><br / >

<b>CEP: </b>".$records['cep']."<br / ><br / >

<b>CNPJ: </b>".$records['CNPJ']."<br / ><br / >

<b>CNPJ - Arquivo: </b>".$records['CNPJ2']."<br / ><br / >

<b>Insc Estadual - Arquivo: </b>".$records['inscEstadual2']."<br / ><br / >

<b>InscriÁ„o Estadual: </b>".$records['inscEstadual']."<br / ><br / >

<b>Telefone: </b>".$records['dddTelefone']."-".$records['telefone']."<br / ><br / >

<b>Contato: </b>".$records['contato']."<br / ><br / >

<b>E-mail: </b>".$records['email']."<br / ><br / >

<b>Mensagem: </b>".$records['mensagem']."<br / ><br / >

</TD>

<TD WIDTH=\"40\"> </TD>

</TR>

</TABLE>

</BODY>

</HTML>

";

 

 

$mail = new PHPMailer();

 

$mail->IsMail();

//$mail->WordWrap = 50;// Quebra de palavras Tamanho Limite

$mail->IsHTML(true); // Email em HTML

 

$mail->CharSet = "UTF8";

$mail->From = "".$records['email']."";

$mail->FromName = "".$records['nome']."";

$mail->Subject = "CONTATO VIA WEB SITE";

 

 

$mail->Body = $retorno;

//$mail->Body = $retorno;

//$mail->AltBody = $text_body;

// destino

$mail->AddAddress("rafael@ativesolucoes.com.br");

//copia oculta

$mail->AddBCC("rgleoni@gmail.com");

 

if($mail->Send()){

$resultado = "Mensagem enviada com sucesso.";

}else{

$resultado = "Erro no envio, tente novamente.";

}

 

$mail->ClearAddresses();

 

}

 

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adicione aquela linha em qualquer lugar deste trecho.

 

$mail->IsMail();
//$mail->WordWrap = 50;// Quebra de palavras Tamanho Limite
$mail->IsHTML(true); // Email em HTML

$mail->CharSet = "UTF8";
$mail->From = "".$records['email']."";
$mail->FromName = "".$records['nome']."";
$mail->Subject = "CONTATO VIA WEB SITE";


$mail->Body = $retorno;
//$mail->Body = $retorno;
//$mail->AltBody = $text_body;
// destino
$mail->AddAddress("rafael@ativesolucoes.com.br");
//copia oculta
$mail->AddBCC("rgleoni@gmail.com");

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala André,

 

adicionei entre o Subject e o Body.

 

Esse path que você usou ('diretorio/arquivo.doc') é o path que precido ter no servidor, certo?

Adicionei e continuou não funcionando.... Pq será?

 

Cara, foi mal... mas realmente não entendo de php... e não estou entendendo muito bem o funcionamento.

Se puder explicar seria ótimo.

 

Se puder continuando me ajudando tb... agradeço! ;-D

 

abs,

Rafael Leoni

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha... aquele path é o caminho do arquivo que vem o campo input type file. Para mudar o form (não sei sei já está pronto) dá uma olhada naquela video aula que eu te mandei.

 

Daí ali no path você coloca algo assim

$mail->AddAttachment($arquivo["tmp_name"],$arquivo["name"], $encoding, $arquivo["type"]); // Anexo
Aqui tem um tópico que fala sobre enviar e-mail no Phpmailer com anexo. Pode ser que te ajude.

http://forum.imasters.com.br/index.php?showtopic=341215

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Rapaziada,

 

é... realmente eu não estou conseguindo.

 

Copio abaixo os trechos "importantes" dos arquivos. Provavelmente vcs enxergarão melhor do que eu o erro.

Se puderem continuar me ajudando... agradeço muito!

 

- Input File Type para anexar o arquivo

 

<label>CNPJ (anexar cópia):</label><label for="CNPJ2" class="error"></label><br />

<input type="file" name="CNPJ2" size="25">

 

 

- Trecho onde recebo os dados preenchidos no form:

 

<b>Nome fantasia: </b>".$records['nomeFantasia']."<br / ><br / >

<b>CNPJ - Arquivo: </b>".$records['CNPJ2']."<br / ><br / >

 

 

- Indicação do email e do Anexo:

 

$mail->CharSet = "UTF8";

$mail->From = "".$records['email']."";

$mail->FromName = "".$records['nome']."";

$mail->Subject = "CONTATO VIA WEB SITE";

$mail->AddAttachment($arquivo["tmp_name"],$arquivo["name"], $encoding, $arquivo["type"]);

$mail->AddAddress("rgleoni@gmail.com");

 

 

Essas foram as alterações que fiz após as ajudas de vcs. Se algo estiver errado, por favor, me avisem.

 

Obrigado!

abs,

Rafael Leoni

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala rapaziada,

 

continuo tentando por aqui... mas não sai nada... rsrsrsrs...

 

Se alguém puder dar um help. Agradeço.

 

Segue novamente as url's:

 

Segue a url do form: http://www.ativesolucoes.com.br/website/pages/cadastrese.php

e a do arquivo "que envia" o mesmo: http://www.ativesolucoes.com.br/website/pa...rCadastrese.php

 

 

Abs,

Rafael Leoni

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha... aquele path é o caminho do arquivo que vem o campo input type file. Para mudar o form (não sei sei já está pronto) dá uma olhada naquela video aula que eu te mandei.

 

Daí ali no path você coloca algo assim

$mail->AddAttachment($arquivo["tmp_name"],$arquivo["name"], $encoding, $arquivo["type"]); // Anexo
Aqui tem um tópico que fala sobre enviar e-mail no Phpmailer com anexo. Pode ser que te ajude.

http://forum.imasters.com.br/index.php?showtopic=341215

 

Carlos Eduardo

Valeu Carlos!

 

Estou insistindo em utilizar o meu código, pois o mesmo já está todo validado e funcionando perfeitamente.

Conforme coloquei nos útlimos dois posts, se conseguíssemos arrumar nessas linhas de código seria perfeito.

Caso contrário vou ter que refazer todo o form.

 

Se alguém conseguir me ajudar agradeço.

 

 

abs,

Rafael Leoni

Compartilhar este post


Link para o post
Compartilhar em outros sites

$mail->AddAttachment($arquivo["tmp_name"],$arquivo["name"], $encoding, $arquivo["type"]); // Anexo

Isto é um exemplo. Para saber o que você deve colocar, faça assim (para debug, depois você tira) no início do seu código.

echo '<pre>';
print_r($_FILES);

Vai imprimir na tela o array contendo o que veio do que foi enviado no campo files. Por ali você acha o nome dele, o tmp_name e o type, que é o que precisa.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

$mail->AddAttachment($arquivo["tmp_name"],$arquivo["name"], $encoding, $arquivo["type"]); // Anexo

Isto é um exemplo. Para saber o que você deve colocar, faça assim (para debug, depois você tira) no início do seu código.

echo '<pre>';
print_r($_FILES);

Vai imprimir na tela o array contendo o que veio do que foi enviado no campo files. Por ali você acha o nome dele, o tmp_name e o type, que é o que precisa.

 

Carlos Eduardo

 

Fala Carlos,

 

valeu pela ajuda! Mas o arquivo continua nao vindo no email.

Segue abaixo o array de retorno:

 

 

Array

(

[CNPJ2] => Array

(

[name] => teste.doc.docx

[type] => application/vnd.openxmlformats-officedocument.wordprocessingml.document

[tmp_name] => /tmp/phpGWSN9L

[error] => 0

=> 9952

)

 

[inscEstadual2] => Array

(

[name] =>

[type] =>

[tmp_name] =>

[error] => 4

=> 0

)

 

)

 

 

Se puder continuar dando esse help... excelente!!!!

 

Valeu cara!

 

abs,

Rafael Leoni

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim

 

$arquivo = $_FILES['CNPJ2'];
$mail->AddAttachment($arquivo["tmp_name"],$arquivo["name"], $encoding, $arquivo["type"]); // Anexo

Deve funcionar

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala cara!

 

Mais uma vez obrgado pela ajuda.

 

Inseri o que falou...mas continuo dando erro no envio!

 

Imprimiu essa mensagem no array:

 

Array

(

[CNPJ2] => Array

(

[name] => teste.doc.docx

[type] => application/vnd.openxmlformats-officedocument.wordprocessingml.document

[tmp_name] => /tmp/phpxfgyRQ

[error] => 0

=> 9952

)

 

[inscEstadual2] => Array

(

[name] =>

[type] =>

[tmp_name] =>

[error] => 4

=> 0

)

 

)

 

 

Tem alguma ideía?!

 

Valeu cara.

 

abs,

Rafael Leoni!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Post excluído por ser contra as regras - flood - Regras do Fórum iMasters

 

Sobre a dúvida, cara, não conheço muito do Phpmailer... Vamos ver se tem outra pessoa para te ajudar, o que sabia já tentei.

 

Carlos Eduardo

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.