Categorias

Aprenda a criar um formulário de contato com upload de arquivos em PHP

Nesse código podemos facilmente construir um formulário de contato com upload de arquivos,
ele é bem simples e muito útil.

obs: nessessáio atenção na hora de personalizar o código pois você tera que configurar somente os campos:

$nome_do_site
$email_para_onde_vai_a_mensagem
$nome_de_quem_recebe_a_mensagem
$extensoes
$maxsize

Claro que o código é livre para aqueles que já possuem experiência e para quem está começando com PHP este é um otimo estudo.





Formulário de Contato


	 

Fale Conosco = '1'){ $nome = "$_POST[nome]"; }else{ $nome = ''; }if("$_POST[email]" >= '1'){ $email = "$_POST[email]"; }else{ $email = ''; }if("$_POST[assunto]" >= '1'){ $assunto = "$_POST[assunto]"; }else{ $assunto = ''; }if("$_POST[mensagem]" >= '1'){ $mensagem = "$_POST[mensagem]"; }else{ $mensagem = ''; } ?> o tipo do arquivo é inválido, aceitamos somente txt, jpg, docx'; }elseif($size >= $maxsize){ $retorno = 'arquivo so e permitido com menos de 2mb'; }if(empty($nome)) { $retorno = 'Informe seu nome'; }elseif (empty($email)) { $retorno = 'Informe seu e-mail'; }elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $retorno = 'Informe um e-mail válido'; }elseif (empty($assunto)) { $retorno = 'Digite o assunto!'; }elseif (empty($mensagem)) { $retorno = 'Digite a mensagem'; }if (empty($retorno)) { // $date = date("d/m/Y h:i"); // ****** ATENÇÃO ******** // ABAIXO ESTÁ A CONFIGURAÇÃO DO SEU FORMULÁRIO. // ****** ATENÇÃO ******** //CABEÇALHO - ONFIGURAÇÕES SOBRE SEUS DADOS E SEU WEBSITE $destino = $_POST['destino']; $nome_do_site="COLOQUE AKI O SEU SITE"; $email_para_onde_vai_a_mensagem = "COLOQUE AKI O SEU EMAIL"; $nome_de_quem_recebe_a_mensagem = "COLOQUE AKI O SEU NOME"; $exibir_apos_enviar=''; //MAIS - CONFIGURAÇOES DA MENSAGEM ORIGINAL $cabecalho_da_mensagem_original="From: $emailn"; $assunto_da_mensagem_original="$assunto"; // FORMA COMO RECEBERÁ O E-MAIL (FORMULÁRIO) // ******** OBS: SE FOR ADICIONAR NOVOS CAMPOS, ADICIONE OS CAMPOS NA VARIÁVEL ABAIXO ************* $configuracao_da_mensagem_original=" ENVIADO POR:
Nome: $nome
E-mail: $email
Assunto: $assunto

Mensagem: $mensagem

ENVIADO EM: $date"; //CONFIGURAÇÕES DA MENSAGEM DE RESPOSTA // CASO $assunto_digitado_pelo_usuario="s" ESSA VARIAVEL RECEBERA AUTOMATICAMENTE A CONFIGURACAO // "Re: $assunto" $assunto_da_mensagem_de_resposta = "Recebemos sua mensagem"; $cabecalho_da_mensagem_de_resposta = "From: $nome_do_site <$email_para_onde_vai_a_mensagem>n"; $configuracao_da_mensagem_de_resposta=" Obrigado por entrar em contato!
Estaremos respondendo em breve...
Atenciosamente $nome_do_site

Enviado em: $date"; // ****** IMPORTANTE ******** // A PARTIR DE AGORA RECOMENDA-SE QUE NÃO ALTERE O SCRIPT PARA QUE O SISTEMA FINCIONE CORRETAMENTE // ****** IMPORTANTE ******** //ESSA VARIAVEL DEFINE SE É O USUARIO QUEM DIGITA O ASSUNTO OU SE DEVE ASSUMIR O ASSUNTO DEFINIDO //POR VOCÊ CASO O USUARIO DEFINA O ASSUNTO PONHA "s" NO LUGAR DE "n" E CRIE O CAMPO DE NOME //'assunto' NO FORMULARIO DE ENVIO $assunto_digitado_pelo_usuario="s"; //ENVIO DA MENSAGEM ORIGINAL $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); $boundary = "XYZ-" . date("dmYis") . "-ZYX"; $mens = "--$boundaryn"; $mens .= "Content-Transfer-Encoding: 8bitsn"; $mens .= "Content-Type: text/html; charset="UTF-8"nn"; $mens .= "$configuracao_da_mensagem_originaln"; $mens .= "--$boundaryn"; $mens .= "Content-Type: ".$arquivo["type"]."n"; $mens .= "Content-Disposition: attachment; filename="".$arquivo["name"].""n"; $mens .= "Content-Transfer-Encoding: base64nn"; $mens .= "$anexon"; $mens .= "--$boundary--rn"; $headers = "MIME-Version: 1.0n"; $headers .= "$cabecalho_da_mensagem_original"; $headers .= "Content-type: multipart/mixed; boundary="$boundary"rn"; $headers .= "$boundaryn"; }else{ $mens = "$configuracao_da_mensagem_originaln"; $headers = "MIME-Version: 1.0n"; $headers .= "$cabecalho_da_mensagem_original"; $headers .= "Content-Type: text/html; charset="UTF-8"nn"; } if ($assunto_digitado_pelo_usuario=="s") { $assunto = "$assunto_da_mensagem_original"; }; $seuemail = "$email_para_onde_vai_a_mensagem"; mail($seuemail,$assunto,$mens,$headers); //ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA $headers = "$cabecalho_da_mensagem_de_resposta"; $headers .= "Content-Type: text/html; charset="UTF-8"nn"; if ($assunto_digitado_pelo_usuario=="s") { $assunto = "$assunto_da_mensagem_de_resposta"; } else { $assunto = "Re: $assunto"; }; $mensagem = "$configuracao_da_mensagem_de_resposta"; mail($email,$assunto,$mensagem,$headers); /*echo "";*/ echo "Sua mensagem foi enviada com suscesso, Estaremos respondendo o mais breve possivel!"; unset($nome, $email, $assunto, $mensagem); } else { echo "$retorno"; } } ?>
**************************** AKI TERMINA O CÓDIGO HTML ************************** **************************** AKI COMEÇA O CÓDIGO CSS ************************** * {paddin:0; margin:0; } #formulario form { width:300px; display:block; margin:0 auto; background:#fff; } #formulario fieldset{ border:0; padding: 0 15px 10px 15px; } #formulario legend{ font:18px Arial, Helvetica, sans-serif; text-align:center; color:#069; font-weight:bold; padding:10px; } #formulario label{ display:block; padding:3px 0; } #formulario span{ display:block; font:16px "Times New Roman", Times, serif; color:#069; font-weight:bold; } #formulario input{ padding:3px; width:260px; border:1px solid #069; font:16px Arial, Helvetica, sans-serif; color: #069; font-weight:bold; } #formulario textarea{ padding:3px; width:260px; border:1 solid #069; font:16px Arial, Helvetica, sans-serif; color: #069; font-weight:bold; } #formulario .send{ width:120px; display:block; margin:10px auto; cursor:pointer; border:0; background:#069; color:#FFFFFF; } #formulario .send:over{ background:#036; } **************************** AKI TERMINA O CÓDIGO CSS **************************