Como criar um formulário de contato

Ter um formulário de contato em seu site é algo muito bom. Qualquer um sabe o quanto é chato ter que abrir uma conta de e-mail ou um programa que agregue contas de e-mail para enviar uma simples mensagem, ainda mais se o assunto não for de extremo interesse para o usuário. Nessas situações, o proprietário do site/blog perde o feedback que lhe poderia ser muito útil.

Por essa razão, veremos hoje como criar um formulário de contatos para sites e blogs.O tutorial aqui foi resumido a partir no construído pelo DGN Studios e pode ser acessado ao clicar no link.

São dois os passos fundamentais: a) criar a página onde aparecerá o formulário e b) criar um arquivo .php que será responsável pelo envio das informações.

  • Criar o html (ou o código que será introduzido em uma página: altere os tamanhos dos campos e o endereço do arquivo contato.php)

<form action=”http://exemplo.com/cgi-bin/contato.php” method=”post” name=”form_de_contato” id=”form_de_contato”>
Nome:
<input name=”nome” type=”text” id=”nome” size=”40″ maxlength=”60″ />
Seu email:
<input name=”email” type=”text” id=”email” size=”40″ maxlength=”60″ />
Assunto:
<input name=”assunto” type=”text” id=”assunto” size=”40″ maxlength=”60″ />
Mensagem:
<textarea name=”mensagem” cols=”20″ rows=”5″ id=”mensagem”></textarea>
<input name=”ok” type=”submit” id=”ok” value=”Enviar mensagem!” />
<input name=”limpa” type=”reset” id=”limpa” value=”Limpar dados!” />
</form>

  • Criar o php (Percorra o arquivo alterando os dados conforme explicados pelos que melhor se adequam à sua necessidade, como o endereço de e-mail e o endereço da página onde estará o formulário de contato. Em seguida, faça um upload com o arquivo contato.php para um diretório)

<?
// Coloque o email que ir receber os valores
$to = “exemplo@exemplo.com”;
//Recebe os valores dos campos…
// Perceba que os valores só resgatados com $_POST[], pois no formulário o método de envio foi o post e no get!
$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$msg = $_POST['mensagem'];
$msg = nl2br($msg); // Todos os Enter’s teclados pelo usuário serão transformados em <br />
// Caso algum campo se encontre vazio ele retorna a página de envio!
if($nome == NULL || $email == NULL || $assunto == NULL || $msg == NULL):
?>
<script language=”JavaScript”>alert(‘H campos requeridos em branco!’);
location.href=’http://exemplo.com/contato.htm’;
</script>
<?
// ainda dentro do if, ele pra a execução e fecha o if aps isso
exit;
endif;
// Aqui ele verifica se o email contém caracteres válidos!
// Esse sistema conhecido como Expresses Regulares…
$pattern = “^([A-Z_a-z])+@([a-zA-Z])+”;
// Caso a verificação retorne falso, ou seja, o email digitado inválido, ele volta para o formulário
if(ereg($pattern,$email) == false):
?>
<script language=”JavaScript”>alert(‘O email no válido’);
location.href=’http://exemplo.com/contato.htm’;
</script>
<?
// Pra a execução do sistema e termina o if
exit;
endif;
// Agora ele est montando o corpo da mensagem para enviar ao email…
$mensagem = “Mensagem enviada por: “.$nome.” em: “.date(“d/m/Y – H:i”).”\n <br />
Abaixo seguem os dados do usuário:\n <br />
E-mail: “.$email.”\n <br />
Assunto: “.$assunto.”\n <br />
A mensagem enviada a você foi a seguinte: \n <br />
“.$msg ;
// Define os cabeçalhos do email…
$headers = “MIME-Version: 1.0\r\n”;
$headers .= “Content-type: text/html; charset=iso-8859-1\r\n”;
// headers adicionais
$headers .= “From: $email <$email>\r\n”;
// finalmente ele envia o Email para o local escolhido lá em cima….
mail($to,$assunto,$mensagem,$headers);
?>
// Abre uma janela confirmando o envio e redirecionando para “index.htm”.
<script language=”JavaScript”>alert(‘Sua mensagem foi enviada com êxito!’);
location.href=’http://exemplo.com/’;
</script>

19 Comentários em “Como criar um formulário de contato”

  1. BlackSilver disse em 02/03/2009 às 23:05:

    Awe desculpa se aqui não e o lugar certo mas pow eu queria saber se o dono do site poderia me arrumar um sistema de comentario igualzinho este qui deste site se puder me arrumar eu agradeço manda para mim por e-mail : travesso.157.boladao@hotmail.com

    • EnterNauta disse em 13/03/2009 às 19:42:

      O sistema de comentários faz parte do WordPress.

  2. douglas disse em 03/03/2009 às 00:20:

    eu fiz o formulario.mas nao recebo os comentarios,me ajuda

  3. Marcos Chaves disse em 14/04/2009 às 10:00:

    Gostaria se possível que vc´s publicassem ou me enviassem o tutorial de formulário de contato na linguagem ASP.

    Obrigado!

    • EnterNauta disse em 15/04/2009 às 17:15:

      Caro Marcos,

      Infelizmente não tenho nenhum conhecimento de ASP. Fico te devendo essa.

  4. Lincoln disse em 20/04/2009 às 13:14:

    Não estou conseguindo :Y

    Eu tenho hospedagem locaweb. Penso estar dando errado por direção de arquivos não sei. Coloquei:

    em "cgi-bin" o contato.php e em "httpdocs" contato.htm, como devo fazer??

    observo: Quem copiar e colar, reescreva as aspas, ao menos no meu, estava interferindo.

    Abraço

    • thiago caesar disse em 25/01/2012 às 13:32:

      que aspaS VC TAH FALANDO ?

  5. Eduardo Caldas disse em 25/08/2009 às 13:01:

    tive que reescrever as aspas conforme o Lincoln comentou. Deu tudo certo.

    Só está acontecendo um erro. se o amigo EnterNauta puder me ajudar. O formulario funciona beleza, acontece que se algum e-mail tiver ponto entre os nomes (o que é muito comum, ex: eduardo.caldas@gmail.com) ele retorna erro de e-mail invalido. Se vc puder me ajudar eu agradeceria em muito. Obrigado. Abraços.

  6. Rafael disse em 17/10/2009 às 14:28:

    olhá gostaria de saber qual é o erro aki nessa lino eu fiz tudo direitinho e eu uso o Dreamweaver CS4

    e quando eu click em enviar

    da esse erro

    "Parse error: syntax error, unexpected T_STRING"

    $mensagem = “Mensagem enviada por: “.$nome.” em: “.date(”d/m/Y – H:i”).”

    gostaria q alguem me ajuda-se

    abraço

    • francisco carlos disse em 14/05/2010 às 10:39:

      toda vez que eu cliko em enviar aparece isso ai

      PHP Parse error: syntax error, unexpected '@' in E:homecristaoantWebcontatocontato.php on line 3

      Alguem pode me ajudar???????????????????

  7. Linkol disse em 30/10/2009 às 12:53:

    Aquela parte que diz: &rdquo ;http://exemplo.com/cgi-bin/contato.php”. é pra colocar a url da pagina do meu site ?

    • EnterNauta disse em 13/11/2009 às 12:13:

      Sim, Linkol, deve ser substituída pela página em questão em seu site.

  8. Rafael disse em 02/11/2009 às 08:20:

    cara, me desculpe, mas o formulário não funcionou no meu site…criei uma página para o form dentro do próprio wordpress, criei uma página "contato.php" e salvei no meu host, mas não funciona…e o código para criação do botão não está funcionando também, na verdade ele está criando uma caixa de mensagem…

  9. Targino Silveira disse em 03/12/2009 às 10:31:

    Cara ficou muito bom mesmo seu tuto….

    Wlw….

  10. Paulo Santos disse em 09/12/2009 às 18:07:

    Onde e como vou hopedar o contato.php na Net?

    E tenho um Blog, não site, e não sei onde hopedar!!!

    Blog: .
    e-mail: paulo_s2000@yahoo.com.br

  11. Paulo Santos disse em 09/12/2009 às 18:45:

    Pronto… agora ta funcionando…

    Para aceitar _ – . 0-9 Como alterar esta parte:

    $pattern = “^([A-Z_a-z])+@([a-zA-Z])+”;

    Vai ficar assim:

    $pattern = “^([A-Z_a-z.0-9])+@([a-zA-Z0-9])+”;

    Como fica a configuração???

    Pois ele não aceita o meu e-mail: paulo_s2000@yahoo.com

    Blog :http://redecerebral.blogspot.com/2009/08/contato.html

  12. matheus disse em 04/07/2011 às 19:39:

    quero saber como configura o enviar.php

  13. thiago caesar disse em 25/01/2012 às 03:17:

    alguem pode me explicar que aspas são essas ???

  14. Aline Ferreira disse em 09/08/2012 às 16:42:

    Como eu uso o blogger,
    Onde posso hospedar a página em PHP?

Deixe seu comentário