Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LeoGomes

Formulário validado em PHP. Onde está o erro?

Recommended Posts

Boa noite! Preciso de uma ajuda. Eu não sei programar em PHP por isso procurei na internet um formulário de contato nessa linguagem que fosse validado. Encontrei um no Baboom.

 

Ele não está funcionando e não sei verificar se existe algum defeito no código. Gostaria que alguém aqui que soubesse pudesse me ajudar a resolver isso.

 

Aqui vão os códigos fontes:

 

Página salva como contato.html

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br"> 
<head>
<title>Biz</title> 
<meta name="DC.title" content="Biz" /> 
<meta name="robots" content="index,follow" /> 
<meta name="generator" content="Notepad++" /> 
<meta name="rating" content="general" /> 
<meta http-equiv="content-language" content="pt-br" /> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
<link rel="stylesheet" type="text/css" href="estilos.css" media="all" /> 
<link rel="shortcut icon" href="imagens/favicon.ico" /> 
</head>
<body>
<form action"http://www.dominio.com/enviar.php" method="post">
<fieldset>
<legend>Contato</legend>
<label>
<span>Nome</span>
<input type="text"/>
</label>
<label>
<span>E-mail</span>
<input type="text"/>
</label>
<label>
<span>Assunto</span>
<input type="text"/>
</label>
<label>
<span>Mensagem</span>
<textarea name="mensagem" cols="40" rows="10">
</textarea>
</label>
<input name="submit" type="submit" class="btn" value="Enviar"/>
</fieldset>
</form>
</body> 
</html>

 

Página salva como estilos.css

*{
font-family:arial,verdana,trebuchet ms;
}
form{
width:400px;
margin:0 auto;
}
form fieldset{
border:0;
padding:5px 15px 10px 15px;
}
form fieldset legend{
font-size:20px;
font-weight:bold;
color:#888;
padding:10px 0;
text-align:left;
}
form label{
display:block;
padding:3px 0;
}
form label span{
display:block;
color:#888;
font-size:11px;
font-weight:bold;
}
form label input{
color:#888;
padding:0;
width:200px;
}
form input.btn{
display:block;
width:120px;
padding:5px 0px;
margin:10px auto 0px;
border:0px;
background:#888;
color:#fff;
cursor:pointer;
font-size:14px;
}

 

Página salva como sucesso.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br"> 
<head>
<title>Sucesso</title> 
<meta name="robots" content="index,follow" /> 
<meta name="generator" content="Notepad++" /> 
<meta name="rating" content="general" /> 
<meta http-equiv="content-language" content="pt-br" /> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
<link rel="stylesheet" type="text/css" href="estilos.css" media="all" /> 
<link rel="shortcut icon" href="imagens/favicon.ico" /> 
</head>
<body>
<script>
location.href=("www.dominio.com")
</script>
</body> 
</html>

 

E finalmente, a página em PHP que foi salva como enviar.php

<title>enviando...</title><?
$nome      = $_POST["nome"];
$email   = $_POST["email"];
$assunto   = $_POST["assunto"];
$mensagem  = $_POST["mensagem"];

global $email; //função para validar a variável $email no script todo

$data      = date("d/m/y");             		//função para pegar a data de envio do e-mail
$ip        = $_SERVER['REMOTE_ADDR'];   		//função para pegar o ip do usuário
$navegador = $_SERVER['HTTP_USER_AGENT'];   	//função para pegar o navegador do visitante
$hora      = date("H:i");               		//para pegar a hora com a função date

//aqui envia o e-mail para você
mail ("email@dominio.com",               		//email aonde o php vai enviar os dados do form
     "$assunto",
     "Nome: $nome\nData: $data\nIp: $ip\nNavegador: $navegador\nHora: $hora\nE-mail: $email\nMensagem: $mensagem",
     "From: $email"
	);

//aqui são as configurações para enviar o e-mail para o visitante
$site   = "Nome do site";                    //o e-mail que aparecerá na caixa postal do visitante
$titulo = "Mensagem recebida";                  //titulo da mensagem enviada para o visitante
$msg    = "$nome, Obrigado pela mensagem. Em breve responderemos.";

//aqui envia o e-mail de auto-resposta para o visitante
mail("$email",
	"$titulo",
	"$msg",
	"From: $site"
   );
echo "";
echo "";
?>
<script>
alert("Mensagem enviada com sucesso")
</script>
<script>
location.href=("sucesso.html")
</script>

 

A única coisa que eu gostaria era simplesmente que esse formulário funcionasse. E que quando alguém me mandasse uma mensagem aparecesse em baixo a frase: mensagem enviada com sucesso.

 

Bem, é só isso pessoal. Agradeço imensamente quem puder me ajudar a corrigir o erro deste código em PHP.

 

Obrigado! Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

falta ; nessa linhas

 

alert("Mensagem enviada com sucesso")

location.href=("sucesso.html")


Compartilhar este post


Link para o post
Compartilhar em outros sites

falta ; nessa linhas

 

alert("Mensagem enviada com sucesso")

location.href=("sucesso.html")


 

Desculpe-me, eu não consegui entender o que falta.

 

Eu ainda não entendi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você colocou o ; onde o shini indicou?

 

 

Coloquei assim:

 

alert("Mensagem enviada com sucesso");

 

location.href=("sucesso.html");

 

Mas não funcionou.

 

Obrigado pela atenção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script type="text/javascript">

alert("Mensagem enviada com sucesso");

</script>

<script type="text/javascript">

location.href=("sucesso.html");

</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentei de todas as formas informadas até o momento aqui no fórum e nada de funcionar. Se alguém puder me enviar por email agradeço muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse formulário não vai funcionar assim.

Está faltando os names nos inputs do formulário, assim

não tem como o servidor pegar os valores dos campos.

 

---> action"http://www.bizcomunicacao.com/enviar.php"

O action do formulário se for enviar pra outro domínio também

não funciona e ainda falta o sinal de atribuição, o certo seria.

action="http://www.bizcomunicacao.com/enviar.php"

Desde que seja no mesmo domínio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem uma série de erros em HTML mas seu PHP está totalmente correto =)

 

Segue o código concertado

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br"> 
<head>
<title>Biz</title> 
<meta name="robots" content="index,follow" /> 
<meta name="generator" content="Notepad++" /> 
<meta name="rating" content="general" /> 
<meta http-equiv="content-language" content="pt-br" /> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
<link rel="stylesheet" type="text/css" href="estilos.css" media="all" /> 
<link rel="shortcut icon" href="imagens/favicon.ico" /> 
</head>
<body>
<form action="http://www.dominio.com/enviar.php" method="post">
<fieldset>
<legend>Contato</legend>
<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 name="mensagem" cols="40" rows="10">
</textarea>
</label>
<input name="submit" type="submit" class="btn" value="Enviar"/>
</fieldset>
</form>
</body> 
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tem uma série de erros em HTML mas seu PHP está totalmente correto =)

 

Segue o código concertado

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br"> 
<head>
<title>Biz</title> 
<meta name="robots" content="index,follow" /> 
<meta name="generator" content="Notepad++" /> 
<meta name="rating" content="general" /> 
<meta http-equiv="content-language" content="pt-br" /> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
<link rel="stylesheet" type="text/css" href="estilos.css" media="all" /> 
<link rel="shortcut icon" href="imagens/favicon.ico" /> 
</head>
<body>
<form action="http://www.dominio.com/enviar.php" method="post">
<fieldset>
<legend>Contato</legend>
<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 name="mensagem" cols="40" rows="10">
</textarea>
</label>
<input name="submit" type="submit" class="btn" value="Enviar"/>
</fieldset>
</form>
</body> 
</html>

 

Muito obrigado a todos pela paciência e ajuda. Até o momento não consegui encontrar a solução. Fiz o que Vini_Aviva disse. Copiei o código a página contato.html corrigido, deixei a página enviar.php inalterada e só mudei o código da página sucesso.html assim:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="pt-br"> 
<head>
<title>Biz</title> 
<meta name="robots" content="index,follow" /> 
<meta name="generator" content="Notepad++" /> 
<meta name="rating" content="general" /> 
<meta http-equiv="content-language" content="pt-br" /> 
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> 
<link rel="stylesheet" type="text/css" href="estilos.css" media="all" /> 
<link rel="shortcut icon" href="imagens/favicon.ico" /> 
</head>
<body>
<script>
location.href=("http://www.dominio.com")
</script>
</body> 
</html>

 

Acrescentei o http:// antes do www porque após a mensagem ser enviada para meu email a página de contato direcionava para a página sucesso.html que estava direcionando para a url http://bizcomunicaca...comunicacao.com que não existe. Agora está direcionando para a página inicial do domínio.

 

 

Problemas que ainda persistem: o formulário não está validado. Quando clico no botão Enviar a mensagem é enviada sem validação e sem a necessidade de preenchimento dos campos.

 

Em meu email, recebo esta mensagem:

 

Nome:

Data: 07/07/12

Ip: 192.841.44.75

Navegador: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11

Hora: 03:29

E-mail:

Mensagem:

 

Com a ajuda de vocês iremos conseguir um ótimo código validado que servirá à todos da comunidade imasters. Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.