Tutorial: Formulário de contato no Dreamweaver

Canal: DreamWeaver  |  Autor: Marciano Dias  |  Publicado em: 18/12/2008  |  Views: 22.237
Vamos desenvolver um simples formulário de contato, bem simples mesmo, porém, de extrema funcionalidade em nosso site um formulário de contato.

Neste formulário que iremos desenvolver terá apenas 4 campos; NOME, EMAIL, ASSUNTO e MENSAGEM, e possuirá apenas 2 arquivos, sendo eles o formulário.html e o envia.php. O formulário.html terá os campos que será preenchidos, enquanto o envia.php fará a validação dos campos preenchidos, isso através da função mail.

Para o tutorial não ficar tanto quanto complexo, mostrarei apenas como funcionam os campos do formulário e a validação do e-mail, ou seja, o quesito beleza não será nosso alvo, até porque você mesmo pode personalizar seu formulário, bastando apenas entender no mínimo HTML.

Base de conhecimento para acompanhar este tutorial:
-Saber HTML.

Abra o dreamweaver e crie um novo documento HTML. Em seguida salve-o como formulario.html



Clique na aba FORMS, em seguida clique em FORM.
O form é o responsável por enviar os campos preenchido para o validador, que no caso é envia.php.



O Pontilhado vermelho que você está vendo é o form.

1-Form.
2-Em ACTION digite envia.php.



Note que digitei nome, em seguida inseri um TEXTFIELD. Faça o mesmo.

Depois de inserir o TEXTFIELD, clique sobre ele.

Veja:



No inspetor de propriedades irá aparece algumas configurações para o textfield. No momento, o que nos interessa é apenas o campo textfield. Nomeie o textfiel para nome, para o campo nome. Recomendável que você digite tudo maiúsculo.

Agora faça você mesmo o mesmo processo que fizermos anteriormente. Crie o campo EMAIL e ASSUNTO e nomeie o textfield com email para email, e assunto para assunto.

Resultado:



Seu formulário deverá ficar assim, caso você esteja acompanhando o tutorial passo a passo.

Agora vamos criar um TEXTAREA. O TEXTAREA será o campo onde é possível que a pessoa digite seu texto.



Clique em TEXTAREA.

Resultado:



Lembrando que você deve nomear o campo textarea como mensagem.

Veja:



Para completar o formulário.html, está falando o botão para enviar os dados preenchido para o envia.php.



Clique em Button para adicionar um botão para nosso formulário.

Resutado:



Isso é fácil, você já deveria saber. O único segredo é nomear os campos no inspetor de propriedades. Pois estes nomes é que farão com que o envia.php saiba que os campos foram preenchido. Se você nomear errado, tanto no formulario.html, quanto envia.php, haverá erro e o email chegará em branco.

Feche o formulário.html.

Agora vamos criar um novo documento em PHP. Este se chamará envia.php.

Deixe o envia.php no modo código.

Vamos apenas acrescentar o código abaixo:
<?
$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$menssagem = $_POST['mensagem'];

global $email;

mail ("seuemail@dominio.com","$assunto",
"Nome: $nome
  Email: $email
Assunto: $assunto
Mensagem: $mensagem",
"From: $email"
);

echo "<p align=center>Sua mensagem foi enviada com sucesso, $nome!</p>";
echo "<p align=center>Em breve entraremos em contato
?>


Note que as strings estão com os nomes dos campos. Se caso você errar alguma delas, o e-mail chegará em branco. Note também que em seuemail@dominio.com você devera colocar o seu email.

Ao copiar os script, pode ser que você tenha algum problema. Recomendo que você faça o download do formulário que fiz, no download vem um formulário pronto, e vem o código que usei como exemplos aqui.

Para funcionar você deverá ter uma hospedagem que suporte e-mails. Geralmente apenas servidores pagos funcionam. Alguns gratuitos funcionam também, porem não são tão bons, pelo menos os que já testei não são.
Creative Commons Esta obra está licenciada sob uma Licença Creative Commons. Você pode copiar, distribuir, exibir, executar, desde que seja dado crédito ao autor original (Citando nome do autor, data, local e link de onde tirou o texto). Você não pode fazer uso comercial desta obra. Você não pode criar obras derivadas.
Vote no artigo:
NR. DE VOTO(S): [5]

Compartilhe:

[x] Fechar Preencha os campos abaixo para indicar esta página:
Seu nome:
Seu e-mail:
Nome do indicado:
E-mail do indicado:
Deixe uma mensagem:
Anti-spam:

(nova imagem)
Preencha o que vê:
Twitter diHITT Facebook delicious envie por e-mail comentar

comentarComentários:

Preencha o formulário para comentar:

[x] Fechar
Nome:*
E-mail:* (não será exibido)
Site: (http://)
Comentário:*
Anti-spam:

(nova imagem)
Preencha o que vê:

Deseja receber as respostas dos comentários

Robson
Publicado em:
18/12/2008 - 13:59
Robson
Olá, fiz um formulário como esse usando a função mail, porem aconteceram alguns erros, gostaria de saber se eu devo abrir alguma porta, ou ter algum servidor de e-mail instalado no servidor para conseguir enviar o e-mail?

muito bom seu tutorial, creio que irá ajudar muita gente, valeu.
Jhonata
Publicado em:
19/12/2008 - 12:53
Jhonata
Foi bem explicado.
mas quando eu vou copiar o códido está dando erro e eu estou procurando o link para baixa o formulário mas não estou encontrando.
se der envia para o meu email.
valeu!
Otavio
Publicado em:
08/01/2009 - 15:39
OLa muito explicativo teu tuto, vou tentar fazer...vlw
Leonardo
Publicado em:
22/01/2009 - 12:04
Leonardo
No código faltou " no final como segue exemplo:

<?
$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$menssagem = $_POST['mensagem'];

global $email;

mail ("seuemail@dominio.com","$assunto",
"Nome: $nome
Email: $email
Assunto: $assunto
Mensagem: $mensagem",
"From: $email"
);

echo "<p align=center>Sua mensagem foi enviada com sucesso, $nome!</p>";
echo "<p align=center>Em breve entraremos em contato"
?>
Pepperpanda
Publicado em:
04/02/2009 - 22:34
Passei o dia pesquisando e após muita "luta", achei este e consegui fazer na boa!
Mas aqui vão algumas dicas:
1º. Faça calmamente, sem pressa, lendo atentamente as instruções do tutorial.
2º. Não copie e cole nenhum dos códigos: o DW troca as aspas e quase sempre vai dar problema e não vai funcionar. No caso do código PHP, digite tudo, exatamente do jeito que o tutorial explica, apenas observando o acréscimo das aspas no final, conforme bem observou o amigo Leonardo logo acima.

Agora só estou tentando resolver o "problema" das mensagens não chegarem acentuadas no meu e-mail; elas chegam com suas acentuações convertidas em caracteres.
Assim que eu descobrir como sanar isto, postarei aqui com certeza! E se alguém souber como resolver isto neste meio tempo, agradeço desde já a ajuda!

Grande abraço a todos!

PepperPanda [Brazil]
:: staff & releaser ::
.:: O Grande Urso Panda for iPod ::.
: http://ograndeursopanda.blogspot.com :
Pepperpanda
Publicado em:
11/02/2009 - 10:28
Olá, Pessoal!

Solucionei o problema de troca de acentuação por caracteres quando recebia o e-mail através do formulário.
Para resolver este problema, basta adicionar uma linha de comando no arquivo PHP, referente ao tipo de "charset" que consta no seu arquivo original em html (no meu caso era o charset=utf-8).

Então, meu arquivo PHP ficou da seguinte maneira:

<code>
<?
$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$headers = "Content-type: text/html; charset=utf-8";
global $email;

mail ("e-mail@e-mail.com.br", "$assunto",
"Nome: $nome <br/>
E-mail: $email <br/>
Assunto: $assunto <br/>
Mensagem: $mensagem <br/>
From: $email",
$headers
);

echo "<p align=center>Sua mensagem foi enviada com sucesso, $nome!</p>
<p align=center>Em breve entraremos em contato.</p>"
?>
</code>

Lembrem-se que este "charset=utf-8" deve ser substituido pelo equivalente do seu arquivo PHP gerado no Dreamweaver, que pode ser encontrado na linha de comando <meta ...>, geralmente na linha 4 do seu arquivo.
Espero ter ajudado, pessoal!

Grande abraço a todos!

PepperPanda [Brazil]
:: staff & releaser ::
.:: O Grande Urso Panda for iPod ::.
: http://ograndeursopanda.blogspot.com :
Pepperpanda
Publicado em:
11/02/2009 - 10:30
Ops! Sem querer saiu um comando <code> e </code> sem querer.
Então o correto é:

<?
$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];
$headers = "Content-type: text/html; charset=utf-8";
global $email;

mail ("e-mail@e-mail.com.br", "$assunto",
"Nome: $nome <br/>
E-mail: $email <br/>
Assunto: $assunto <br/>
Mensagem: $mensagem <br/>
From: $email",
$headers
);

echo "<p align=center>Sua mensagem foi enviada com sucesso, $nome!</p>
<p align=center>Em breve entraremos em contato.</p>"
?>


Grande abraço a todos!

PepperPanda [Brazil]
:: staff & releaser ::
.:: O Grande Urso Panda for iPod ::.
: http://ograndeursopanda.blogspot.com :
Daniel
Publicado em:
15/02/2009 - 11:05
Segui o Tutorial e as correções mas ao publicar no UOL HOST apareceu um aviso: esta plataforma não suporta php
Daniel
Publicado em:
15/02/2009 - 11:10
Segui o Tutorial e as correções mas ao publicar no UOL HOST apareceu um aviso:
Aviso!
Esta plataforma ainda não suporta PHP.
Para utilizar PHP solicite a migração para a plataforma Linux.
Daniel
Publicado em:
15/02/2009 - 11:12
O QUE EU DEVO FAZER.
TEM UMA OUTRA LIGUAGEM PARA ENVIAR OS MEUS DADOS DE FORMULARIO?
ALGUÉM PODE ME AJUDAR?

OBRIGADO
Gelso de Lima
Publicado em:
15/04/2009 - 16:27
Olá fiz uma página de um site que estou construindo e nele fiz um formulário igual ao seu.Só que minhas páginas estão todas em php.Esta quase tudo certo só quando recebo os e-mails do formulário em vez de acento vem em caracteres.Gpostaria de uma ajuda.É o primeiro site que estou fazendo e deve ter alguns erros.Não digitei uma linha de código sequer copiei tudo as imagens coloquei direto no DW.vai o código abaixo.Obrigado pela sua atenção.
--
UPDATE: HTML revovido
Rodrigo
Publicado em:
23/04/2009 - 12:16
Rodrigo
Parabens pelo tutorial!!!
muito claro e objetivo.
Talita
Publicado em:
29/04/2009 - 18:25
Talita
Aonde está o link para o download da pág PHP que ele menciona no TUTORIAL??

O e-mail chegou certo (nome, assunto), mas a mensagem veio em branco... =(
Marina
Publicado em:
05/05/2009 - 17:05
Marina
boa tarde..
alguem poderia me ajudar?
estou fazendo meu primeiro site...
e estou com problemas na confecção de formulário de contato para a empresa...

criei tudo conforme as dicas acima...

porém, quando vou lá no intert explorer para testar como ficará o site , clico em [ENVIAR] e ao invéz de enviar um e-mail para o e-mail, cadastrado ele abre uma janela pedindo se eu quero salvar abrir ou cancelar o documento -envia.php


o que estou fazendo de errado???


o fato de o site não estar ainda no ar, interfere em alguma coisa???

abraços
aguardo retorno
Nelson
Publicado em:
31/05/2009 - 11:31
Nelson
Olá, onde estão os arquivos para download?
Zecarlos
Publicado em:
08/06/2009 - 23:44
digitei este formulario no meu site, só q coloquei em outro arquivo contato.html. o problema é q funcionou td certinho no 1º dia, no dia seguinte tentei mandar email, da mensagem q foi enviado, mas não chega, não consegui + arrumar ja tentei de tudo.se alguem poder me ajudar agradeço.
Ednei
Publicado em:
29/06/2009 - 16:47
boa tarde Marciano, fiz o formulário como segue mais recebo a mensagem em branco aonde errei
fico no aguardo
Phoneixhellsing
Publicado em:
27/07/2009 - 00:24
Phoneixhellsing
Pepperpanda, uma duvida em relacao ao codigo para manter os acentos ele nao deveria estar la pela quarta linha mesmo ao inves de declarado como variavel, na realidade eu tentei as duas coisas e nao deu certo rsrsr
Desde já agradeco
Pedro Paulo
Publicado em:
04/08/2009 - 12:08
Pedro Paulo
Sou iniciante em php e fiz tudo conforme estava no tutorial mas quando aperto o botão enviar aparece esta mensagem

Parse error: syntax error, unexpected $end in /usr/local/www/cristovivematao/envia.php on line 29

onde foi que errei
Carlos André
Publicado em:
24/08/2009 - 13:22
Carlos André
Amigão, com o meu deu certo!

abra o DW e escolha a opção PHP

delete tudo que estiver escrito lá e cole o codigo:

<?
$nome = $_POST['nome'];
$email = $_POST['email'];
$assunto = $_POST['assunto'];
$mensagem = $_POST['mensagem'];

global $email;

mail ("casfreitas@yahoo.com.br","$assunto",
"Nome: $nome
Email: $email
Assunto: $assunto
Mensagem: $mensagem",
"From: $email"
);

echo "foi";

?>

pronto!
Agora veja o nome das variais se coissidem com as que estão no formulário.

qualquer duvida me escreva!

casfreitas@yahoo.com.br

boa sorte
Alfredo
Publicado em:
01/10/2009 - 22:09
Alfredo
aki se tiver jeito sera q vc podia fazer isso ai para min e manda para o meu e-mail???
se der meu e-mail e esse ai alfredo.otavio@hotmail.com
Ian
Publicado em:
23/10/2009 - 10:42
Ian
fiz tudo certinho, ele avisa que a mensagem foi enviada... mas ela nunca chega no e-mail.
Hudson
Publicado em:
29/10/2009 - 16:07
Alguem poderia me ajudar?
sou novo no ramo...
1º quando abro um novo doc no dw eu apago ou deixo os codigos que estão la?
2º tentei das duas maneiras, mais pelas duas quando clico em submit apenas aparece uma pagina com os codigos da pag enviar.php
3º tenho que digitar os codigos php ou tbm posso apenas colar?
Wagner Grilo
Publicado em:
18/01/2010 - 15:07
muito bom o post, e bem legalllll
Andre
Publicado em:
20/01/2010 - 21:49
Li seu post e fiz conforme esta explicado, so que estou com 1 problema minha cliente tem hospedagem no uolhost e la nao funciona nem a pau os formularios que eu faço, ja tentei varios e nao da, ja fiz igual o que eles mandaram e nao da.
sera que alguem tem algum formulario simples que rode no uolhost que possa me enviar? quero apenas 1 campo no formulario email. Agradeço desde já pela atenção.
OBS: plataforma linux
Agencia Web Sul - Web Design
Publicado em:
09/02/2010 - 00:56
belo tutorial amigo!
Geferr
Publicado em:
17/02/2010 - 20:33
Fiz o tutorial todo e ao enviar uma mensagem veio a seguinte resposta:
Warning: mail() [function.mail]: SMTP server response: 550 Requested action not taken: mailbox unavailable or not local in C:\Inetpub\vhosts\geferr.com\httpdocs\envia.php on line 24

Sua mensagem foi enviada com sucesso,!

Em breve entrarei em contato.

Qual seria o erro, pois ao validar no DW não foram encontrados erros, nem avisos
Everton Luíz
Publicado em:
27/02/2010 - 18:38
Everton Luíz
EXCELÊNTE TUTORIAL, MENSAGEM, TA CHEGANDO NOME , EMAIL, ASSUNTO APENAS ESTÁ FALTANDO A MENSAGEM CHEGAR, QUAL SERÁ O PROBLEMA ?
André Luiz Hornhardt
Publicado em:
09/03/2010 - 20:15
André Luiz Hornhardt
Quero agradecer a ajuda de todos, pois foi fundamental para que conseguisse fazer o formulario em meu site.
Aproveito para pedir uma ajuda: Como mudar a cor e o tipo de letra da resposta do php" Agradecemossua mens...."