Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com a validação


Parisi

Pergunta

Bom dia a todos.

O meu problema é o seguinte.

Tenho um formulário de contato, consegui fazer uma validação de alguns campos desejados, mas o e-mail é enviado mesmo vazio.

não vou postar o codigo do formulario, porque ta correto, esta enviando tudo certo. O problema está no código php que segue abaaixo:

<?php

//Pega o valor do campo nome do formulário: 
$nome = $_POST[nome]; 

//Pega o valor do campo assunto do formulário: 
$assunto = $_POST[assunto]; 
$assunto2 = $_POST[assunto2];
$ddd = $_POST[ddd];
$telefone = $_POST[telefone];
$cidade = $_POST[cidade];
$estado = $_POST[estado];

//Pega o valor do campo email do formulário: 
$email = $_POST[email]; 

//Coloque o e-mail que receberá os dados: 
$seuemail = "*(E-MAIL)"; 

//Pega o valor do campo mensagem, e usa a função n12br() para aceitar comandos html: 
$mensagem = nl2br($_POST[mensagem]);

//Cria o texto que será enviado ao e-mail
$conteudo = "*(CONTEUDO QUE IRÁ PARA O EMAIL)";

$headers = "MIME-Version: 1.0\r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
$headers .= "From: $email \r\n"; 

//Enviar os dados do formulário para seu e-mail
$enviar = mail($seuemail, $assunto, $conteudo, $headers); 

if (empty($nome)) {
$erro = 1;
$msg = "<script>window.location='form.php';alert('Preencha o campo NOME');</script>";
}
if (empty($email)) {
$erro = 1;
$msg = "<script>window.location='form.php';alert('Preencha o campo E-MAIL');</script>";
}
if (empty($assunto2)) {
$erro = 1;
$msg = "<script>window.location='form.php';alert('Preencha o campo ASSUNTO');</script>";
}
if (empty($mensagem)) {
$erro = 1;
$msg = "<script>window.location='form.php';alert('Preencha o campo MENSAGEM');</script>";
}

if ($erro) {

print $msg;

}

if($enviar) {
echo "Mensagem enviada com sucesso !<br>Em breve entraremos em contato.";
}else{
echo "Não foi possível enviar.";
} 

?>

Se alguém souber o que esta errado e puder me ajudar, agradeço desde já..

Grande abraço

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Cara você usou muita coisa onde poderia usar só uma:

Na parte para verificar se está em Branco use assim:

if ($nome == "" && $email == "" && $assunto2 == "" && $mensagem == "")
{
$erro = 1;
$msg = "<script>window.location='form.php';alert('Preencha todos os campos!');</script>";
}
E outra, o POST tem que ter ASPAS:
$nome = $_POST["nome"];

Tenta ai, se ainda tiver erro avise!

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu Rapahel pela resposta..

Realmente tinha me esquecido das aspas no POST, e já alterei..

Fiz as suas alterações, diminuiu o código e continua funcionando ..

Mas o erro ainda continua, mesmo com os campos em branco a mensagem é enviada..

Será que esta faltando um "return false;" !?

Andei lendo em alguns artigos, mas ainda não testei..

Mesmo assim obrigado pela ajuda..

Vou continuar procurando alguma coisa..

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Você pode fazer parecido como o Raphael mostrou, mas o correto seria utilizar o operador or ao invés do and

if(empty($nome)||empty($email)||empty($assunto2)||empty($mensagem)){
$erro=1;
$msg = "<script type=\"text/javascript\">location='form.php';alert('Preencha todos os campos!');</script>";
}

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi..

Agora sem mexer em nada, o código esta funcionando..

não sei se é problema com o webmail da hospedagem do uol..

Mas surgiu um problema que, no campo do email, qualquer e-mail que colocar do yahoo, uol, terra, globo, é enviado..

Mas quando coloca hotmail, não vai..

Sei que não faz parte desse tópico, só pra constar mesmo..

Vou procurar no google sobre o assunto.

Obrigado pelas informaçoes

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Porque voce não usa javascript para validacao de campos? eu acho muito mais pratico e eficaz. Se tiver interessado abaixo vai o codigo:

<script language="javascript" type="text/javascript">

function validar() {

d = document.nomedoform

if (d.nomedocampo.value == "") {

alert("O campo " + d.nomedocampo + " deve ser preenchido.");

d.nomedocampo.focus();

return false;

}

return true;

}

</script>

Ai no HTML voce bota assim:

<form action="suapagina.php" method="post" name="nomedoform" id="iddoforme" onsubmit="return verifica()">

<input type="text" name="nomedocampo">

</form>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...