Como criar um formulário de contato
Postado em 23 de May de 2008
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>

Cara isso ajudo muito vlw hehe.
Parabéns pelo Site
muito bom
Muito Boa esta dica!!!
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
O sistema de comentários faz parte do WordPress.
eu fiz o formulario.mas nao recebo os comentarios,me ajuda
Gostaria se possível que vc´s publicassem ou me enviassem o tutorial de formulário de contato na linguagem ASP.
Obrigado!
Caro Marcos,
Infelizmente não tenho nenhum conhecimento de ASP. Fico te devendo essa.
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
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.
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”).”\n
gostaria q alguem me ajuda-se
abraço
Funcionou perfeitamente.
Aquela parte que diz: ”http://exemplo.com/cgi-bin/contato.php”. é pra colocar a url da pagina do meu site ?
Sim, Linkol, deve ser substituída pela página em questão em seu site.
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…
Cara ficou muito bom mesmo seu tuto….
Wlw….
Onde e como vou hopedar o contato.php na Net?
E tenho um Blog, não site, e não sei onde hopedar!!!
Blog: http://redecerebral.blogspot.com/2009/08/contato.html
e-mail: paulo_s2000@yahoo.com.br
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
É… era isso mesmo que faltava!!!
Agora está funcionando perfeitamente!!!
Vlw… muito bom o site… Flw!!!
Blog: http://redecerebral.blogspot.com/2009/08/contato.html
e-mail: paulo_s2000@yahoo.com