Jump to content


Photo

Erro No Envio De Anexo Em Formulário


  • Faça o login para participar
2 replies to this topic

#1 karper1.2

karper1.2

    Normal

  • Usuários
  • 62 posts
  • Sexo:Masculino
  • Localidade:Serro
  • Interesses:PHP e áreas de Web

Posted 31/10/2012, 19:47

Galera, tenho um formulário que uso a muito tempo para envio de orçamento pelo meu site.
Tentei fazer uma alteração nele para que ele pudesse enviar ANEXO junto, ou seja, o cliente mandar sua logo ao fazer um orçamento e tals... peguei um código fui alterando... cheguei no ponto em que funciona, eu recebo o e-mail o orçamento é cadastrado no bd, o e-mail de confirmação é enviado para o cliente, porém não recebo o anexo que é o mais importante... Alguém ai pode dar uma conferida no código pra mim...
PS: se eu usar o código que peguei a seco, só o formulário com envio de anexo, eu recebo normalmente... depois que fiz as alterações que não funcionou...
Desde já obrigado..
Segue o código é um pouco grande mas foi onde consegui chegar

case "cadastrar_orcamento":
        $nome_cliente=$_POST['nome_cliente'];
        $empresa=$_POST['empresa'];
        $responsavel=$_POST['responsavel'];
        $endereco=$_POST['endereco'];
        $bairro=$_POST['bairro'];
        $cidade=$_POST['cidade'];
        $estado=$_POST['estado'];
        $cep=$_POST['cep'];
        $telefone=$_POST['telefone'];
        $tel_celular=$_POST['tel_celular'];
        $email = $_POST['email'];
        $nome_produto=$_POST['nome_produto'];
        $referencia=$_POST['referencia'];
        $qnt=$_POST['qnt'];
        $arquivo=$_POST['arquivo'];
        $detalhes=$_POST['detalhes'];
        $comandoQuery="insert into tbl_orcamento (nome_cliente, empresa, responsavel, endereco, bairro, cidade, estado, cep, telefone, tel_celular, email, nome_produto, referencia, qnt, detalhes) values('$nome_cliente','$empresa','$responsavel','$endereco','$bairro', '$cidade', '$estado','$cep','$telefone','$tel_celular', '$email', '$nome_produto', '$referencia', '$qnt', '$detalhes')";
        mysql_query($comandoQuery,$con) or die(mysql_error());
        echo"<p>Seu Orçamento foi enviado com sucesso.</p>";
        echo"<p>Obrigado pela visita e fique a vontade para navegar em nosso site.</p>";
        echo"<p>Breve entraremos em contato.</p>";
        echo"<p>Att.: XXXXXXXXXXXXXXXXXXXXX</p>";
                                
//TESTE DE CONFIRMAÇÃO DE CADASTRO
                                  
        $headers  = "MIME-Version: 1.1\n";
        $headers .= "Content-Type: text/html; charset=utf-8\n";
        $headers .= "From: <contato@contato.com.br>\n"; // remetente
        $headers .= "Return-Path: <contato@contato.com.br>\n"; // return-path   
        
        $headers2  = "MIME-Version: 1.1\n";
        $headers2 .= "Content-Type: text/html; charset=utf-8\n";
        $headers2 .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";
        $headers2 .= "From:  " . $_POST["nome_cliente"] . " <" . $_POST["email"] . ">\n"; // remetente
        $headers2 .= "Return-Path: <contato@contato.com.br>\n"; // return-path
        $headers2 .= "Reply-To: " . $_POST["nome_cliente"] . " <" . $_POST["email"] . ">\n";
        $headers2 .= "$boundary\n";     
                                
        $para = "contato@contato.com.br";
        $nome_cliente = $_POST["nome_cliente"];
                
        $email = $_POST["email"];

                                
// E-MAIL PARA O CLIENTE - CONFIRMAÇÃO ///



        $boundary = "XYZ-" . date("dmYis") . "-ZYX";                            
        $assunto = "Confirmação Orçamento".$_POST["assunto"];
        $mensagem = $_POST["mensagem"];
        $msg = "";
        $msg  .= "<p>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</p>";
        $msg  .= "<p><strong></strong>Olá <strong>" .$nome_cliente. "</strong><p>Recebemos o seu pedido entraremos em contato!</p>";
        $msg  .= "<p><strong>Qualquer dúvida estamos a disposição.</strong></p>";
        $msg  .= "<p><strong>Atenciosamente: </strong></p>";
        $msg  .= "<p><strong>xxxxxxxxxxxxxxxxxxx</strong></p>";
                
        mail($email,$assunto,$msg,$headers);
                                                

// Email Administrador - Com os dados do Cliente e o ANEXO //

                
        $boundary = "XYZ-" . date("dmYis") . "-ZYX";    
        $assunto2 = "Novo Orçamento".$_POST["assunto2"];
        $mensagem = $_POST["mensagem"];
        $msg2 .= "Content-Type: ".$arquivo["type"]."\n";
        $msg2 .= "Content-Disposition: attachment; filename=\"".$arquivo["name"]."\"\n";
        $msg2 .= "Content-Transfer-Encoding: base64\n\n";                                                                                               
        $msg2   = "";
        $msg2  .= "<p><strong></strong>O cliente  " .$nome_cliente. ", solicitou o orçamento em nosso site:</p>";
        $msg2  .= "<p><strong>------------------------------------------------------------</strong></p>";
        $msg2  .= "<p><strong>Produto: </strong>".$nome_produto."</p>";
        $msg2  .= "<p><strong>Referência: </strong>".$referencia."</p>";
        $msg2  .= "<p><strong>Quantidade: </strong>".$qnt."</p>";
        $msg2  .= "<p><strong>Detalhes: </strong>".$detalhes."</p>";
        $msg2  .= "<p><strong>Anexo: </strong>".$anexo."</p>";
        $msg2  .= "<p><strong>-------------------------------------------------------------</strong></p>";
        $msg2  .= "<p><strong></strong>Os dados de contato do cliente " .$nome_cliente. " são:</p>";
        $msg2  .= "<p><strong>-------------------------------------------------------------</strong></p>";
        $msg2  .= "<p><strong>Telefone: </strong>".$telefone."</p>";
        $msg2  .= "<p><strong>E-mail: </strong>".$email."</p>";
        $msg2  .= "<p><strong>Celular: </strong>".$tel_celular."</p>";
        $msg2  .= "<p><strong>Endereço: </strong>".$endereco."</p>";
        $msg2  .= "<p><strong>Cidade: </strong>".$cidade."</p>";
        $msg2  .= "<p><strong>Estado: </strong>".$estado."</p>";
        $msg2  .= "<p><strong>Cep: </strong>".$cep."</p>";
        $msg2 .= "$anexo\n";
        $msg2 .= "--$boundary--\r\n";

        $arquivo = isset($_FILES["arquivo"]) ? $_FILES["arquivo"] : FALSE;


    if(file_exists($arquivo["tmp_name"]) and !empty($arquivo)){
         $fp = fopen($_FILES["arquivo"]["tmp_name"],"rb");
                $anexo = fread($fp,filesize($_FILES["arquivo"]["tmp_name"]));
                $anexo = base64_encode($anexo);

                fclose($fp);
                $anexo = chunk_split($anexo);

                mail($email,$assunto,$msg,$headers);
                mail($para,$assunto2,$msg2,$headers2);

}

    else{

                $headers2 = "MIME-Version: 1.0\r\n";
                $headers2 .= "Content-type: text/html; charset=iso-8859-1\r\n";
                $headers2 .= "From: <contato@contato.com.br>\n";

                //envia o email sem anexo

                mail($email,$assunto,$msg,$headers);
                mail($para,$assunto2,$msg2,$headers2);

}

                                                                        
break;


#2 Jefferson Ventura

Jefferson Ventura

    Turista

  • Usuários
  • 25 posts
  • Sexo:Masculino

Posted 06/11/2012, 09:54

Olá karper1.2,

É o seguinte, o seu formulário tem que ter essa propriedade definida:

enctype="multipart/form-data"

e na hora de receber os dados os arquivos você recebe utilizando:

$_FILES['nome_do_campo']

$_FILES["arquivo"]["name"]
$_FILES["arquivo"]["type"]
$_FILES["arquivo"]["size"]
$_FILES["arquivo"]["tmp_name"]
$_FILES["arquivo"]["error"]

Qualquer coisa só falar.

Abs.

Edição feita por: Jefferson Ventura, 06/11/2012, 09:55.


#3 karper1.2

karper1.2

    Normal

  • Usuários
  • 62 posts
  • Sexo:Masculino
  • Localidade:Serro
  • Interesses:PHP e áreas de Web

Posted 29/01/2013, 18:01

Jerfferson, obrigado pelas informações. Infelizmente tive que me ausentar por um período não previsto e só agora estou retomando as atividades.

Teria como você me passar no código lá de cima onde eu errei ou onde eu insiro essas informações que você falou?
O e-mail de confirmação chega sem problemas, o cadastro é feito no BD, só o anexo desaparece.

Obrigado desde já.



Olá karper1.2,

É o seguinte, o seu formulário tem que ter essa propriedade definida:

enctype="multipart/form-data"

e na hora de receber os dados os arquivos você recebe utilizando:

$_FILES['nome_do_campo']

$_FILES["arquivo"]["name"]
$_FILES["arquivo"]["type"]
$_FILES["arquivo"]["size"]
$_FILES["arquivo"]["tmp_name"]
$_FILES["arquivo"]["error"]

Qualquer coisa só falar.

Abs.






1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq