17 de abr de 2013

Formulário de contatos PHP 2.0

Comparado a um formulário de contatos em PHP que postei a algum tempo atrás, esta é uma versão melhorada, por isso, 2.0.

Confira abaixo o código comentado:

HTML
Nome:

E-mail:

Telefone:

Mensagem:


PHP
if(isset($_POST['enviar'])) {

$remetente = "contato@seuemail.com.br"; // INSIRA AQUI UM EMAIL CRIADO EM SUA HOSPEDAGEM PARA QUE A MENSAGEM SEJA ENVIADA CORRETAMENTE.
$destinatario = "contato@seuemail.com.br"; // INSIRA AQUI O ENDEREÇO DO DESTINATÁRIO DO E-MAIL.

$charset = $_POST['charset'];
$assunto = 'contato-site';
$nome = $_POST['nome'];
$mail = $_POST['mail'];
$telefone = $_POST['telefone'];
$mensagem = $_POST['mensagem'];

$corpo = "Nome: ".$nome."
E-mail: ".$mail."
Fone: ".$telefone."
Mensagem: ".$mensagem.""; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=".$charset."\r\n"; //$headers .= "Cc: copia@seudominio\r\n"; CAMPO COPIA OPCIONAL //$headers .= "Bcc: copiaoculta@seudominio\r\n"; CAMPO COPIA OCULTA OPCIONAL $headers .= "From: ".$remetente."\r\n"; if (preg_match( "/bcc:|cc:|multipart|\[url|Content-Type:/i", implode($_POST))) { $spam=true; } if(mail($destinatario, $assunto, $corpo, $headers)) { echo file_get_contents('obrigado.html'); } else { echo file_get_contents('erro.html'); } } else { echo file_get_contents('erro.html'); }
Obs, o exemplo acima serve apenas como consulta, se desejar se basear nele, sugiro que faça as alterações necessárias para que funcione corretamente para suas necessidades, não autorizo a copia total do conteúdo para uso comercial, caso isso seja feito, não me responsabilizo por algum problema técnico.

5 comentários:

  1. ótimo artigo parabéns continue postando, tem um outro site que eu recomendo tambem Scriptcase.

    ResponderExcluir
    Respostas
    1. Obrigado pelo comentário e pela dica, não sou muito ativo aqui no blog, mas logo logo farei novas postagens.

      Att.

      Excluir
  2. Parabéns pelo artigo, mas comigo não rolou.. O que pode estar errado? Se quiser eun posto o codigo.. Já agradeço.

    ResponderExcluir
    Respostas
    1. Pode ser alguma configuração de servidor, ele aceita php certo?

      Você copiou exatamente o código acima?

      Tente este, veja se funciona: http://www.blog.andrerubiodesign.com.br/2009/12/formulario-de-contato-em-php.html

      Excluir
  3. Obrigado pela resposta. O servidor aceita php sim, inclusive funcionava normalmente até semana passada, e agora aparentemente não funciona com nenhum script. Vou colar abaixo o que eu uso como padrão e parou de funcionar, se tem algum erro não encontrei.. O estranho é que aparece o alerta como se tivesse sido enviado normalmente, mas a msg nunca chega.. Segue codigo, agradeço a atenção:

    *meta http-equiv="Content-Type" content="text/html; charset=utf-8" /*
    *?
    header('Content-Type: text/html; charset=utf-8');
    $date = date("d/m/Y h:i");
    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $empresa = $_POST['empresa'];
    $cidade = $_POST['cidade'];
    $estado = $_POST['estado'];
    $telefone = $_POST['telefone'];
    $fax = $_POST['fax'];
    $assunto = $_POST['assunto'];

    $mensagem = $_POST['mensagem'];



    //CONFIGURAÇÕES SOBRE SEU SITE
    $nome_do_site="www.comasareserv.com.br";
    $email_para_onde_vai_a_mensagem = "comasa@comasareserv.com.br";
    $nome_de_quem_recebe_a_mensagem = "Comasa - Reservatórios de Água";
    $exibir_apos_enviar='index.php?sec=contato';

    //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="n";

    //CONFIGURAÇOES DA MENSAGEM ORIGINAL
    $cabecalho_da_mensagem_original="From: $nome *$email*\n";
    $assunto_da_mensagem_original="Contato via Website";
    $configuracao_da_mensagem_original="Enviado por:\nnome: $nome\nemail: $email\nempresa: $empresa\ncidade: $cidade\nestado: $estado\ntelefone: $telefone\nfax: $fax\nassunto: $assunto\nmensagem: $mensagem\nEnviado 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 = "EMAIL RECEBIDO";
    $cabecalho_da_mensagem_de_resposta = "From: $nome_de_quem_recebe_a_mensagem | (16) 3368 3118 | $nome_do_site *$email_para_onde_vai_a_mensagem*\n";
    $configuracao_da_mensagem_de_resposta="Obrigado pelo contato!\nretornaremos em breve...\n$nome_de_quem_recebe_a_mensagem - $nome_do_site\n\nEnviado em: $date";



    //ENVIO DA MENSAGEM ORIGINAL
    $headers = "$cabecalho_da_mensagem_original" ;
    if ($assunto_digitado_pelo_usuario=="n")
    {
    $assunto = "$assunto_da_mensagem_original";
    };
    $seuemail = "$email_para_onde_vai_a_mensagem";
    $mensagem = "$configuracao_da_mensagem_original";
    mail($seuemail,$assunto,$mensagem,$headers);

    //ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA
    $headers = "$cabecalho_da_mensagem_de_resposta";
    if ($assunto_digitado_pelo_usuario=="n")
    {
    $assunto = "$assunto_da_mensagem_de_resposta";
    }
    else
    {
    $assunto = "Re: $assunto";
    };
    $mensagem = "$configuracao_da_mensagem_de_resposta";
    mail($email,$assunto,$mensagem,$headers);

    echo "

    *META HTTP-EQUIV=REFRESH CONTENT='0; URL=$exibir_apos_enviar'*

    *script type=\"text/javascript\"*

    alert(\"Contato enviado com sucesso !\");

    */script*

    ";


    ?*

    ResponderExcluir