Formulário de contato com validação em PHP!
Fala rapaziada, este script está pronto para ser utilizado, vem todo comentado e é o mesmo que uso em todos os meus projetos. Ele Server para criação de formulários de contatos com resposta automática.
Ou seja, um visitante do seu site envia uma mensagem e recebe no ato a confirmação de envio em seu próprio e-mail, ele é todo validade em PHP e para saber como utilizar siga as 2 vídeo aulas abaixo!
Vídeo Aulas:
Formulário de contato parte 1: Criando e estilizando!
Formulário de contato parte 2: Programando e validando!
PS:Note que quando você posiciona o mouse no código aparece uma espécie de menu no canto superior direito do código. Para copiar o código clique na folha que contam as tags <>
Script:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Formulário de Contato Up Inside</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="box">
<div id="formulario">
<form action="" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Fale Conosco</legend>
<?php
if (isset($_POST['enviar']) && $_POST['enviar'] == 'send') {
$nome = strip_tags(trim($_POST['nome']));
$email = strip_tags(trim($_POST['email']));
$assunto = strip_tags(trim($_POST['assunto']));
$mensagem = strip_tags(trim($_POST['mensagem']));
if(empty($nome)) {
$retorno = '<span>Informe seu nome</span>';
}elseif (empty($email)) {
$retorno = '<span>Informe seu e-mail</span>';
}elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$retorno = '<span>Informe um e-mail válido</span>';
}elseif (empty($assunto)) {
$retorno = '<span>Digite o assunto!</span>';
}elseif (empty($mensagem)) {
$retorno = '<span>Digite a mensagem</span>';
}if (empty($retorno)) {
//<input type="hidden" name="enviar" value="send" />
$date = date("d/m/Y h:i");
// ****** ATENÇÃO ********
// ABAIXO ESTÁ A CONFIGURAÇÃO DO SEU FORMULÁRIO.
// ****** ATENÇÃO ********
//CABEÇALHO - ONFIGURAÇÕES SOBRE SEUS DADOS E SEU WEBSITE
$nome_do_site="UpInside";
$email_para_onde_vai_a_mensagem = "contato@upinside.com.br";
$nome_de_quem_recebe_a_mensagem = "UpInside";
$exibir_apos_enviar='';
//MAIS - CONFIGURAÇOES DA MENSAGEM ORIGINAL
$cabecalho_da_mensagem_original="From: $name <$email>\n";
$assunto_da_mensagem_original="Fale com UpInside";
// FORMA COMO RECEBERÁ O E-MAIL (FORMULÁRIO)
// ******** OBS: SE FOR ADICIONAR NOVOS CAMPOS, ADICIONE OS CAMPOS NA VARIÁVEL ABAIXO *************
$configuracao_da_mensagem_original="
ENVIADO POR:\n
Nome: $nome\n
E-mail: $email\n
Assunto: $assunto\n\n\n
Mensagem: $mensagem\n\n
ENVIADO EM: $date";
//CONFIGURAÇÕES DA MENSAGEM DE RESPOSTA
// CASO $assunto_digitado_pelo_usuario="s" ESSA VARIAVEL RECEBERA AUTOMATICAMENTE A CONFIGURACAO
// "Re: $assunto"
$assunto_da_mensagem_de_resposta = "Confirmação";
$cabecalho_da_mensagem_de_resposta = "From: $nome_do_site <$email_para_onde_vai_a_mensagem>\n";
$configuracao_da_mensagem_de_resposta="Obrigado por entrar em contato!\nEstaremos respondendo em breve...\nAtenciosamente,\n$nome_do_site\n\nEnviado em: $date";
// ****** IMPORTANTE ********
// A PARTIR DE AGORA RECOMENDA-SE QUE NÃO ALTERE O SCRIPT PARA QUE O SISTEMA FINCIONE CORRETAMENTE
// ****** IMPORTANTE ********
//ESSA VARIAVEL DEFINE SE É O USUARIO QUEM DIGITA O ASSUNTO OU SE DEVE ASSUMIR O ASSUNTO DEFINIDO
//POR VOCÊ CASO O USUARIO DEFINA O ASSUNTO PONHA "s" NO LUGAR DE "n" E CRIE O CAMPO DE NOME
//'assunto' NO FORMULARIO DE ENVIO
$assunto_digitado_pelo_usuario="s";
//ENVIO DA MENSAGEM ORIGINAL
$headers = "$cabecalho_da_mensagem_original";
if ($assunto_digitado_pelo_usuario=="s")
{
$assunto = "$assunto_da_mensagem_original";
};
$seuemail = "$email_para_onde_vai_a_mensagem";
$mensagem = "$configuracao_da_mensagem_original";
mail($seuemail,$assunto,$mensagem,$headers);
//ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA
$headers = "$cabecalho_da_mensagem_de_resposta";
if ($assunto_digitado_pelo_usuario=="s")
{
$assunto = "$assunto_da_mensagem_de_resposta";
}
else
{
$assunto = "Re: $assunto";
};
$mensagem = "$configuracao_da_mensagem_de_resposta";
mail($email,$assunto,$mensagem,$headers);
/*echo "<script>window.location='$exibir_apos_enviar'</script>";*/
echo "<span class=\"yes\">Sua mensagem foi enviada com suscesso, Estaremos respondendo o mais breve possivel!</span>";
} else {
echo "$retorno";
}
}
?>
<label>
<span>Nome</span>
<input type="text" name="nome" />
</label>
<label>
<span>E-mail</span>
<input type="text" name="email" />
</label>
<label>
<span>Assunto</span>
<input type="text" name="assunto" />
</label>
<label>
<span>Mensagem</span>
<textarea cols="31" rows="5" name="mensagem"></textarea>
</label>
<input type="hidden" name="enviar" value="send" />
<input type="submit" name="Enviar" />
</fieldset>
</form>
</div><!--formulario-->
</div>
</body>
</html>
CSS:
*{margin:0; padding:0;}
body {background:#999; margin:50px;}
#formulario form {width:300px; display:block; margin:0 auto; background:#FFF;}
#formulario fieldset {border:0; padding:0 15px 10px 15px;}
#formulario legend {font:18px Tahoma, Geneva, sans-serif; color:#069; font-weight:bold; padding:10px 0; border-bottom:2px;}
#formulario label {display: block; padding:3px 0;}
#formulario span {display:block; font:16px "Trebuchet MS", Arial, Helvetica, sans-serif; color:#069; font-weight:bold;}
#formulario input {padding:3px; width:260px; border:1px solid #069; font:16px Tahoma, Geneva, sans-serif; color:#069; font-weight:bold;}
#formulario textarea {padding:3px; width:260px; border:1px solid #069; font:16px Tahoma, Geneva, sans-serif; color:#069; font-weight:bold;}
#formulario .send {width:120px; display:block; margin:10px auto; cursor:pointer; border:0; background:#069; color:#FFF;}
#formulario .send:hover {background:#036;}
.yes {padding:3px; background:#EAFFD5; border:1px solid #0F0;}
.no {padding:3px; background:#FDD; border:1px solid #F00;}



sérgio Falou
Em: 18 de março de 2010 as 9:09Bom dia,
Beleza de tutorial. Ajudou-me a descascar um abacaxi! Prático sem firulas. Faz tempo que a parte de formulário com validação estava virando um problema pra mim. Valeu e parabéns pelo site e pelas video aulas.
sds,
sergio.
William Pereira Falou
Em: 27 de março de 2010 as 23:07Fala Robson blza?
Mais uma vez eu por aqui, velho sou leigo em liguagem PHP, gostaria de saber se necessáriamente eu tenho que “estruturar” esse script junto com meu arquivo/página ” contato.php”, ou se poderia colocar os scrips em um arquivo externo e depois “chamar” eles assim como faço com o css, mantendo o mesmo resultado.
Valew fera, forte abraço!
William Pereira
Robson V. Leite Falou
Em: 27 de março de 2010 as 23:23@William Pereira: Pode sim meu querido, basta tirar o isset inicial do script e a última chave “}” que fecha ele, depois coloque apenas o script de envio e as respostas em uma página separada e coloque o caminho dela no form. (action=”pagina.php”)!
William Pereira Falou
Em: 27 de março de 2010 as 23:40Blza Robson, valew fera por ajudar mais uma vez!
Logo logo volto com outra dúvida sobre outro tema rsrs
Abraços
Robson V. Leite Falou
Em: 27 de março de 2010 as 23:49@William Pereira: Estarei aqui
, forte abraço!
William Pereira Falou
Em: 6 de abril de 2010 as 21:16E Aew Robson,
Olha eu eu aqui de novo =).
Deixa eu te perguntar, como faço para corrigir os acentos.
Ex: quando digito no textarea do form em meu site, a mesma chega belezinha, só que, quando essa messagem tem algum acento agudo, circunflexo e etc a mensagem chega distrocida.
Como resolvo?
Valew
Robson V. Leite Falou
Em: 6 de abril de 2010 as 21:19@William Pereira: veja a aula no link abaixo!
http://www.upinside.com.br/video-aulas/formulario-de-contato-parte-5-html-mail-inserindo-anexo-e-selecionando-destino
William Pereira Falou
Em: 6 de abril de 2010 as 21:28Blza Vou Ver agora!
Abraço
Regis Falou
Em: 9 de abril de 2010 as 16:47Ola Robson td bem?
Eu crei estes dois sites mas como vc pode ver…ainda estou aprendendo a arte de desenvolver sites com um layout legal e chamativo.
O meu grande problema no momento é os formularios de contato.
Não domino o PHP, na vdd nao sei nada…rs. Eu copiei os scripts do formulario de contato e o do CSS.
Qual eh o procedimento agora? Ja que o meu site eh todo em html e os formularios estão em PHP!!
Me da um help por favor?
Obrigado,
Regis
Robson V. Leite Falou
Em: 9 de abril de 2010 as 20:21@Regis: Fala meu querido, a página estar salva em html realmente impossibilita a mesma de executar scripts PHP. Mas o simples fato de você a salvar como .php já resolve este problema, e não vai mudar nada no código. Mesmo o site sendo totalmente em html puro e salvo como .php ele executará os scripts normalmente, mas salvo como .html não tem como executar .php!
scr3m Falou
Em: 15 de abril de 2010 as 16:18Ola primeiramente gostaria de agradeçer a sua video aula
ta de nota 10, só que me desculpe por eu ser leigo nesse assunto de web mas mesmo com a video aula não estou conseguindo add dois campos q seria cidade e telefone quando eu add e testo no easy php ele fala que os campos estão em branco tem como vc me dar uma ajudinha valeu seu site é show de bola sempre recomendo.
scr3m Falou
Em: 16 de abril de 2010 as 17:10Ae robson vi umas 5 vezes sua video aula e consegui eu estava errando por que eu estava tentando fazer no easy php e não iria conseguir fazer nunca x=D mas valew ae cara vou indicar seu site q é show de bola fuii
nereu Falou
Em: 27 de abril de 2010 as 20:37Retorna naum encontrado o $exibir_apos_enviar ” –
Linha 048 do script acima.
Como resolver? – Ajuda ae! – Agradeço.
fernando Falou
Em: 27 de julho de 2010 as 1:15Legal mesmo esse script, ta enviando direitinho! tenho uma duvida de iniciante aqui, sei que pode ser coisa boba, mas é que ao inves de o nome do meu botão estar “Enviar Dados” como o da video-aula, o meu ta ” Enviar Consulta”. como faço para mudar!
Luciano Júnior Falou
Em: 27 de julho de 2010 as 8:56@Fernando:Troque:
por
Scr3m Falou
Em: 28 de julho de 2010 as 20:19Ola cara sei que vc anda muito oculpado mas se vc pudesse me dar uma ajudinha, gostaria de saber como faço para meu site aparecer nas pesquisas do google, por que nem se eu colocar o link do site todo ele não aparece me da essa ajuda ae valew
Luciano Júnior Falou
Em: 28 de julho de 2010 as 21:26@Scr3m: Isso se chama SEO, um portugues significa optimização para mecanismos de busca, ou seja, você vai melhorar seu site para os sistemas de busca(Google, Yahoo, Bing e outros).Eu já estou preparando uma simples introdução sobre isso, mas você também pode visitar o site http://www.seomaster.com.br!!!Há sim e vc colocou o seu site no cadastro do Google foi??Bem, essa tècnica não é muito aconselhada, pois demora muito; Na minha video-aula pretenderei abordar estes assuntos; Vlw