Formulário de Contato em PHP com Dreamweaver
Olá, pessoal
Atendendo a pedidos, escreverei um tutorial explicando como criar um formulário de contato simples em PHP, utilizando o Dreamweaver e a validação dos comandos Spry.
Pré-Requisitos
- Facilidade quanto ao manuseio de formulários no Dreamweaver
- Conhecimento básico de lógica de programação
- Uso do Dreamweaver CS3 ou CS4 para os comandos Spry de validação
- Criar uma conta gratuita no servidor 000webhost.com
Objetivo
- Criar um formulário de contato em PHP, utlizando o Dreamweaver e seus comandos Spry de validação.
Conteúdo
1º Passo – Inserção do Campo FORM
Vamos iniciar, criando um formulário básico, mas já utilizando os scripts de validação do Spry. Recomendo àqueles que não estão familiarizados com esta ferramenta do Dreamweaver, a verem os tutoriais:
Comecemos pela inserção da seção responsável pela inclusão de todos os itens do formulário “Form“. Acessemos o painel Insert > Forms > Form:

Fig.01 - Menu Insert > Forms
Lembrando que, a partir de agora, todos os itens deverão ser inseridos dentro da linha tracejada que foi criada automaticamente pelo Dreamweaver. Ao clicar sobre esta linha tracejada, o painel Properties é aberto, e nele, já podemos realizar algumas configurações:

Fig.02 - Painel Properties - Form
2º Passo – Inserção do Campo “Nome”
Seção de formulário criada, agora vamos aos campos. Para isso, utilizaremos o Painel Insert > Spry > Spry Validation Text Field:

Fig.03 - Painel Insert - Spry Text Field
Lembrando que, estou utilizando a versão CS4 do Dreamweaver. Na versão CS3, o posicionamento da barra Insert é na parte superior do programa.

Fig.04 - Text Field NOME
Com esta ação, teremos o seguinte resultado:

Fig.05 - Painel properties Spry
Vamos formatar este campo com as seguintes propriedades:
- Spry TextField: Spry_NOME
- Validate on: Marcar a opção “Blur“
- Required : Marcar esta opção para deixar o campo obrigatório
- Previews states: Selecionar a opção “Required” e trocar o texto “A value is required” por “Preenchimento obrigatório.”.
Vejamos o resultado abaixo:

Fig.06 - Validação do campo NOME
Vamos salvar este formulário com o nome: contato.php
3º Passo – Inserção do Campo “E-mail”
Seguindo a mesma lógica do 2º passo, devemos fazer a sequência:
- Painel Insert > Spry > Spry Validation Text Field
- ID: email | Label: E-mail:
- Spry TextField: Spry_EMAIL
- Type: Email Address – Validação para endereço de e-mail
- Validate on: Marcar a opção “Blur“
- Required : Marcar esta opção para deixar o campo obrigatório
- Previews states: Selecionar a opção “Required” e trocar o texto “A value is required” por “Preenchimento obrigatório.”.
- Previews states: Selecionar a opção “Invalid Format” e trocar o texto “A value is required” por “E-mail inválido: tente novamente.”.

Fig.07 - Validação Spry - EMAIL
4º Passo – Inserção do Campo “Assunto”
Seguindo a mesma lógica do 2º passo, devemos fazer a sequência:
- Painel Insert > Spry > Spry Validation Text Field
- ID: assunto | Label: Assunto:
- Spry TextField: Spry_ASSUNTO
- Validate on: Marcar a opção “Blur“
- Required : Marcar esta opção para deixar o campo obrigatório
- Previews states: Selecionar a opção “Required” e trocar o texto “A value is required” por “Preenchimento obrigatório.”.

Fig.08 - Validação Spry - ASSUNTO
5º Passo – Inserção do Campo “Mensagem”
Seguindo a mesma lógica do 2º passo, devemos fazer a sequência:
- Painel Insert > Spry > Spry Validation Textarea
- ID: manesagem | Label: Mensagem:
- Spry TextField: Spry_MENSAGEM
- Validate on: Marcar a opção “Blur“
- Required : Marcar esta opção para deixar o campo obrigatório
- Previews states: Selecionar a opção “Required” e trocar o texto “A value is required” por “Preenchimento obrigatório.”.

Fig.09 - Validação Spry - MENSAGEM
6º Passo – Inserção do Botão “Enviar”
Seguindo a mesma lógica do 2º passo, devemos fazer a sequência:
- Painel Insert > Form > Button
- ID: enviar
- Value: Enviar
- Action: Submit Form

Fig.10 - Botão do formulário
6º Passo – Criando a página “enviar_formulario.php”
Vamos criar agora a página responsável pelo envio dos dados do formulário acima. Então, com um arquivo novo, já o salvemos com o nome “enviar_formulario.php“.
Em seguida, vamos melhorar a nossa visualização do código PHP, alterando a área de trabalho do Dreamweaver, clicando na aba Split.

Fig.11 - Visualização Split
Este tipo de visualização favorece ao desenvolvedor trabalhar o código acima e o design embaixo.
Continuando… Vamos apagar todo o código html acima para iniciarmos a produção do código PHP.
Lembrando que a intenção não é detalhar as funções do PHP, mas criar um código que faça o papel de enviar os dados do formulário pelo Dreamweaver. O que está entre os símbolos /* comentário */ são os comentários de cada seção que a gente for colocar no código.
< ?PHP
/* E-mail que receberá os dados do formulário*/
$email_destino="seu-email-aqui@provedor.com";
/*****************************************************************
Algumas informações que constarão no cabeçalho do e-mail
******************************************************************/
$cabecalho = "From: \"Contato do Site\" \n"; /* Exibe de onde partiu este formulário. */
$cabecalho .= "Reply-To: ".$_POST['nome']."&lt;".$_POST['email']."&gt;\n";
$cabecalho .= "X-Mailer: PHP v".phpversion()."\n"; /* Versão do X-Mailer responsável pelo envio */
$cabecalho .= "Content-type: text/html; charset=iso-8859-1"."\r\n"; /* Responsável pela tranformação do texto em formato HTML */
$cabecalho .= "MIME-Version: 1.0"."\r\n";
/*****************************************************************
Conteúdo do e-mail extraído do formulário
******************************************************************/
$conteudo = "Mensagem enviada por:".$_POST['nome']. "\n";
$conteudo .= "Email:".$_POST['email']. "\n";
$conteudo .= "Assunto:".$_POST['assunto']. "\n";
$conteudo .= "Mensagem:".$_POST['mensagem']."\n";
$conteudo .= "IP:".$_SERVER['REMOTE_ADDR']. "\n";
/*****************************************************************
Mensagens de erro e confirmação de envio
******************************************************************/
if (mail($email_destino,$_POST['assunto'],$conteudo,$cabecalho)) {
echo "Sua mensagem foi enviada com sucesso!";
}
else {
echo "Ops! Aconteceu um erro de envio. Por favor, tente novamente ou entre em contato com o administrador do site.";
}
?>
Enviando os dois arquivos, mas a pasta Spry para um mesmo diretório do seu site, já estão funcionando perfeitamente
Mas vamos da uma incrementada no código
7º Passo – Configurando mensagem HTML
Vamos melhorar a exibição das mensagens de confirmação e erro, formatando-as em HTML.
/*****************************************************************
Mensagens de erro e confirmação de envio
******************************************************************/
if (mail($email_destino,$_POST['assunto'],$conteudo,$cabecalho)) {
echo "<h3>Sua mensagem foi enviada com<font color='#CC0000'>sucesso!</font></h3>
<p>
<h2>Responderemos em breve!</h2>
</p>";
}
else {
echo "<h2><font color='#CC0000'>Ops! Aconteceu um erro de envio. Por favor, tente novamente ou entre em contato com o administrador do site.</font></h2>";
}
?>
8º Passo – Testando no servidor
Só para tirarmos a prova dos nove, vamos testar o formulário, utilizando um servidor gratuito. O server escolhido foi o 000webhost.com:
Faça seu cadastro gratuito e envie os arquivos (não esqueça da pasta Spry) e veremos o seguinte resultado:
É isso aí, pessoal.
No próximo tutorial, falarei como enviar arquivos automaticamente pro FTP com o Dreamweaver.
Até lá
CarlosHPS Webdesigner





















há 11 meses atrás
Esta tentando em outro servidor gratuito, mas tenho umas imagens separadas por pasta, e la não faz upload de pasta, a propria pasta spry tambem. Estava tentando em http://miarroba.com/, mas não da, num sobe as pastas, ai eu coloco pra subir o conteudo da pasta mas da erro de referencia. o que faço? La sobe zip, mas sempre da erro. Aguardo resposta. Parabens novamente.
há 11 meses atrás
Olá, jrabelha
Alguma pessoas estão com o mesmo problema que o seu, pois o server pede pra instalar um arquivo para confirmar. Eu não recomendo a instalação, mas algumas pessoas que instalaram disseram que não tiveram problemas e funcionou direitinho. Quanto ao outro server… você tem que verificar se ele trabalha com FTP, pois só assim é possível enviar as pastas de uma só vez. Se não trabalhar com FTP, no próprio servidor você deverá criar as pastas (exatamente como no tutorial) e enviar arquivo por arquivo para elas, ok?!
Boa sorte.
CarlosHPS Webdesigner
há 10 meses atrás
há 10 meses atrás
Oi, Rodrigo
Quanto Easyphp ou Apache… ambos funcionam perfeitamente, off-line. Os utilizei muitas vezes em meu PC sem a necessidade da Internet.
Primeiramente, fiquei feliz em você ter gostado do tutorial
Atualmente, utilizo o Wampserver.
Abração
CarlosHPS Webdesigner
há 10 meses atrás
há 10 meses atrás
Olá, Daniel
Recomendo o meu curso on-line “Criação de Sites Profissionais“.
Nele você aprenderá como criar e publicar um site do início ao fim.
Passa lá: http://www.carloshps.com.br/cursos
CarlosHPS Webdesigner
há 10 meses atrás
Em primeiro lugar, eu gostei muito do seu tutorial…
eu fiz o passo a passo, criei todos os 2 arquivos, e testei…
Soh que eu ainda não testei em um servidor…
Isto só vai funcionar online ??
eu não posso testar na minha maquina ??
na minha maquina
há 10 meses atrás
na minha maquina, abre uma caixinha de download quando clico em enviar…
mas finalmente consegui postar num servidor neste momento… caso de o mesmo erro online, eu volto a escrever…
Muito Obrigado…
há 10 meses atrás
estou com dificuldade em fazwer o aquivo enviar_formulario.php, no designerr aparece um monte de texto, comoecanco com <php!!!
vc poderia me ajuda
grato
há 10 meses atrás
há 9 meses atrás
Olá, Gabriel
Posta o código do seu formulário para eu dar uma olhada.
Abraços.
CarlosHPS Webdesigner
há 9 meses atrás
o conteudo do do text eu recebo normalmente no email, mas o que está dentro do select, não aparece…você pode me dar uma ajuda ?
Agredeço desde já.
há 9 meses atrás
Oi, Pedro
Posta o código aqui para eu dar uma olhada.
há 9 meses atrás
Muito Obrigado
há 9 meses atrás
Pedro,
Vi seu código, mas se o e-mail está chegando direitinho, qual é o problema?
há 9 meses atrás
boas
eu fis o formulario do post acima e ele funciona lindamente mas tem um senao .
no site (veja voce mesmo )www.pedro18.comxa.com
ele aparece estranho nao aparece logo na pagina ele reencaminha para outra pagina so depois é que se pode preencher mas eu queria éra polo numa pagina ja feita como fasso isso
cumpz
muito bom tutu
balck
há 9 meses atrás
Balck,
Renomeia o arquivo Contacto.php para default.php
CarlosHPS Webdesigner
há 9 meses atrás
Dá um erro que não consegui identificar o problema.
Podes me ajudar?
errro gerado:
Warning: mail(): SMTP server response: 501 5.5.2 <”Contato do Site”>… Domain name required in E:\vhosts\bandeirasbrasil.com.br\httpdocs\enviar_formulario.php on line 31
Ops! Aconteceu um erro de envio. Por favor, tente novamente ou entre em contato com o administrador do site.
há 9 meses atrás
Olá, Cristiano
Este form foi criado para funcionar em um server on-line. Pelo que vi aqui, você esta executando ele localmente, em seu PC.
Publique o forme e teste-o novamente.
Um abraço.
CarlosHPS Webdesigner
há 9 meses atrás
Mas, o meu tá dando erro na linha “if”…
” if (mail($_POST["$email"], $_POST["spryemail"], $_POST["$msg"], $_POST["$cabecalho"])) ”
onde tá o erro?? me ajuda aew…
vlw!!!
há 9 meses atrás
Olá, Renan
Este código foi testado e aprovado por vários usuário. O problema que constatei é que você o alterou e se perdeu na reconfiguração.
É preciso saber o que está fazendo quando se altera um script.
Posta ele completo aqui pra eu dar uma olhada.
CarlosHPS Webdesigner
há 9 meses atrás
vi o proximo tutorial e lá tem”cadastro parte 1,…4″,vc chegou a fazer este tutorial ai Carlos?
Obrigada!se puder me responder por email c/o link…parabens pelo site,ajuda mt!
há 9 meses atrás
Oi, Vanessa
Os links são:
Como Criar um Sistema de Cadastro: Parte 4
Como Criar um Sistema de Cadastro: Parte 3
Como Criar um Sistema de Cadastro: Parte 2
Como Criar um Sistema de Cadastro: Parte 1
há 9 meses atrás
Obrigado
há 9 meses atrás
Olá, Marcelo
Tente utilizar um e-mail com a extensão do seu domínio, por exemplo: se seu domínio for http://www.marcelo.com.br, crie um e-mail em seu servidor do tipo contato@marcelo.com.br, entendeu? Caso não funcione, refaça o script, digitando linha por linha, pois o script funcionou perfeitamente comigo e outros usuários.
Não recomenoo que apenas copie e cole o código porque pode vir desconfigurado.
Boa sorte.
CarlosHPS Webdesigner
há 8 meses atrás
Ainda não coloquei o formulário no site para testar se está funcionando.
Só gostaria de saber se eu posso colocá-lo dentro de uma tabela para ficar alinhado os campos, pois dessa forma aí ele fica todo desalinhado.
Geovane
há 8 meses atrás
Olá, Geovane
Abração.
Você pode usar tabelas sem nenhum problema. Pode ir com fé
CarlosHPS Webdesigner