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á 1 ano 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á 1 ano 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á 1 ano atrás
há 1 ano 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á 1 ano atrás
há 1 ano 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á 1 ano 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á 1 ano 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á 1 ano 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á 1 ano atrás
há 1 ano atrás
Olá, Gabriel
Posta o código do seu formulário para eu dar uma olhada.
Abraços.
CarlosHPS Webdesigner
há 1 ano 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á 1 ano atrás
Oi, Pedro
Posta o código aqui para eu dar uma olhada.
há 1 ano atrás
Muito Obrigado
há 1 ano atrás
Pedro,
Vi seu código, mas se o e-mail está chegando direitinho, qual é o problema?
há 1 ano 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á 1 ano atrás
Balck,
Renomeia o arquivo Contacto.php para default.php
CarlosHPS Webdesigner
há 1 ano 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á 1 ano 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á 1 ano 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á 1 ano 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á 1 ano 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á 1 ano 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á 1 ano atrás
Obrigado
há 1 ano 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á 1 ano 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á 1 ano atrás
Olá, Geovane
Abração.
Você pode usar tabelas sem nenhum problema. Pode ir com fé
CarlosHPS Webdesigner