Ir para conteúdo

POWERED BY:

Arquivado

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

fabricio2009

[Resolvido] Formulário PHP validar campo

Recommended Posts

Preciso inserir uma validação para os campos "nome, e-mail, assunto e mensagem" para que não envie o formulário sem esses campos preenchidos ou em branco. Tenho uma pagina erro.html eu queria q se algum campo estiver sem ser preenchido ou com info errada fosse redirecionado para essas pagina. Mais não consigo de forma alguma, não sei muito de PHP já procurarei na net, não consegui fazer funcionar. Alguém poderia fazer a gentileza de validar os campos pra mim nesse formulário q coloquei abaixo, por favor, alguém me ajude.

<?
$nome      = $_POST["nome"];
$email   = $_POST["email"];
$assunto   = $_POST["assunto"];
$mensagem  = $_POST["mensagem"];
$exibir_apos_enviar = 'contactsuccess.html';

global $email;

$data      = date("d/m/y");
$ip        = $_SERVER['REMOTE_ADDR'];
$navegador = $_SERVER['HTTP_USER_AGENT'];
$hora      = date("H:i");

mail ("contato@meusite.com.br", 
     "$assunto",
     "Nome: $nome\nE-mail: $email\nIp: $ip\nNavegador: $navegador\nData: $data\nHora: $hora\nMensagem: $mensagem",
     "From: $email"
    );

$site   = "contato@contato@meusite.com.br";
$titulo = "Confirmação de envio de mensagem";
$msg    = "$nome, obrigado por entrar em contato comigo, retornarei o mais breve possível.";
$exibir_apos_enviar = 'contactsuccess.html';

mail("$email",
    "$titulo",
    "$msg",
    "From: $site"
   );
echo "<script>window.location='$exibir_apos_enviar'</script>";
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Matias num to conseguindo fiz assim mais nada acontece continua a mesma coisa ficou assim meu form:

<?
[b]empty($_POST['var']);[/b]

$nome      = $_POST["nome"];
$email   = $_POST["email"];
$assunto   = $_POST["assunto"];
$mensagem  = $_POST["mensagem"];
$exibir_apos_enviar = 'contactsuccess.html';

global $email;

$data      = date("d/m/y");
$ip        = $_SERVER['REMOTE_ADDR'];
$navegador = $_SERVER['HTTP_USER_AGENT'];
$hora      = date("H:i");

mail ("contato@meusite.com.br", 
     "$assunto",
     "Nome: $nome\nE-mail: $email\nIp: $ip\nNavegador: $navegador\nData: $data\nHora: $hora\nMensagem: $mensagem",
     "From: $email"
    );

$site   = "contato@meusite.com.br";
$titulo = "Confirmação de envio de mensagem";
$msg    = "$nome, obrigado por entrar em contato comigo, retornarei o mais breve possível.";
$exibir_apos_enviar = 'contactsuccess.html';

mail("$email",
    "$titulo",
    "$msg",
    "From: $site"
   );
echo "<script>window.location='$exibir_apos_enviar'</script>";
[b]header('location:paginadeerro.php');[/b]

?>

é dessa forma mesmo que estou fazendo?

 

abraços....

Compartilhar este post


Link para o post
Compartilhar em outros sites

esta aparecendo a mensagem de erro só que a mensagem chega pra mim normal, nesse caso aparecia a outra mensagem de envio ok. o que pode ser? to quase conseguindo ... por favor só me digam como eu posso corrigir isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brother, acho válido você estudar PHP... estude CONDIÇÃO (IF).

 

Depois você vai ter que testar se cada variável retornada do formulário está vazia, e não testar ['var'], var foi uma representação de variável.

 

A continuação do seu código vai estar separado do redirecionamento para a página de erro.

if (condição) {
    seu código;
    } else {
        página de erro;
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo agradeço toda ajuda... muito obrigado mais achei q fosse mais simples, vou tentar de outra maneira, pois não entendo nada de PHP.. brigadãoooo mesmo pela ajuda... abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é difícil... Mas precisa de um mínimo de conhecimento em linguagem de programação, porque o IF é básico.

 

Vou exemplificar, com o seu código...

 

<?
$erro = ''; // aqui estou apenas setando a $erro.
if(empty($_POST['nome'])) $erro .= '- Nome<br/>';// aqui estou dizendo para o script. SE $_POST['nome'] FOR VAZIA, a $erro vai ser acrescentada o texto ' - Nome<br/>'
if(empty($_POST['email'])) $erro .= '- E-mail<br/>';// aqui estou dizendo para o script. SE $_POST['email'] FOR VAZIA, a $erro vai ser acrescentada o texto ' - E-mail<br/>'
// faça a mesma coisa para as outras variáveis que estão aqui abaixo.


$nome      = $_POST["nome"];
$email   = $_POST["email"];
$assunto   = $_POST["assunto"];
$mensagem  = $_POST["mensagem"];
$exibir_apos_enviar = 'contactsuccess.html';

//global $email; esta linha é desnecessária

$data      = date("d/m/y");
$ip        = $_SERVER['REMOTE_ADDR'];
$navegador = $_SERVER['HTTP_USER_AGENT'];
$hora      = date("H:i");

//aqui vou testar. Caso todos os campos tenham sido preenchidos, a $erro vai estar vazia e vai entrar no if
if (empty($erro))
{
     mail ("contato@meusite.com.br", 
      "$assunto",
      "Nome: $nome\nE-mail: $email\nIp: $ip\nNavegador: $navegador\nData: $data\nHora: $hora\nMensagem: $mensagem",
      "From: $email"
     );

     $site   = "contato@meusite.com.br";
     $titulo = "Confirmação de envio de mensagem";
     $msg    = "$nome, obrigado por entrar em contato comigo, retornarei o mais breve possível.";
     $exibir_apos_enviar = 'contactsuccess.html';

     mail("$email",
     "$titulo",
     "$msg",
     "From: $site"
    );
    header("location:$exibir_apos_enviar");
}
// aqui dentro do else é o que vai ser feito caso não tenha preenchido corretamente os campos
else
{
    echo 'Os campos abaixo são obrigatórios e não foram preenchidos.<br/>'.$erro;
}

É mais ou menos isto.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa amigo deu certo agora só preciso saber agora qual é o codigo para que em vez de aparecer essa msg "Os campos abaixo são obrigatórios e não foram preenchidos" apareça minha pagina de erro.. muito obrigado!

 

}

 

//aqui dentro do else é o que vai ser feito caso não tenha preenchido corretamente os campos else

 

{

 

echo 'Os campos abaixo são obrigatórios e não foram preenchidos.<br/>'.$erro;

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa amigo deu certo agora só preciso saber agora qual é o codigo para que em vez de aparecer essa msg "Os campos abaixo são obrigatórios e não foram preenchidos" apareça minha pagina de erro.. muito obrigado!

 

}

 

//aqui dentro do else é o que vai ser feito caso não tenha preenchido corretamente os campos else

 

{

 

echo 'Os campos abaixo são obrigatórios e não foram preenchidos.<br/>'.$erro;

 

}

 

header('location:paginadeerro.php');

 

http://br.php.net/manual/pt_BR/function.header.php

 

Carlos Eduardo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui coloquei: header("location:contacterror.html").$erro; de certo. Muito Obrigado de todos os foruns que eu entrei para tentar fazer funcionar apenas você conseguiu me ajudar... Obrigado amigo.

 

abraços fica com Deus!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas por gentileza você poderia me dizer um codigo para que eu valide o e-mail tipo ja validei pra não ficar em branco eu queria validar pra não ser digitado qualquer coisa tendeu? =D obrigado!

 

eu tenho essa classe de validação abaixo eu não sei onde devo colocar ela no meu formulario: ta certa esse código?

 

<?php
//Autor: Moacir Selínger Fernandes
//www.hassed.com | hassed@hassed.com
//Esta função verifica se o email digitado é valido
function validaEMAIL($email){ 
  $mail_correcto = 0; 
  //verifico umas coisas 
  if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){ 
     if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) { 
        //vejo se tem caracter . (ponto)
        if (substr_count($email,".")>= 1){ 
           //obtenho a terminação do dominio 
           $term_dom = substr(strrchr ($email, '.'),1); 
           //verifico que a terminação do dominio seja correcta 
        if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){ 
           //verifico que o de antes do dominio seja correcto 
           $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1); 
           $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1); 
           if ($caracter_ult != "@" && $caracter_ult != "."){ 
              $mail_correcto = 1; 
           } 
        } 
     } 
  } 
} 

if ($mail_correcto) 
  return true; 
else 
  return false; 
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas por gentileza você poderia me dizer um codigo para que eu valide o e-mail tipo ja validei pra não ficar em branco eu queria validar pra não ser digitado qualquer coisa tendeu? =D obrigado!

 

eu tenho essa classe de validação abaixo eu não sei onde devo colocar ela no meu formulario: ta certa esse código?

 

function verificar_email($email){
   $mail_correcto = 0;
   //verifico umas coisas
   if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@")){
      if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," "))) {
         //vejo se tem caracter .
         if (substr_count($email,".")>= 1){
            //obtenho a terminação do dominio
            $term_dom = substr(strrchr ($email, '.'),1);
            //verifico que a terminação do dominio seja correcta
         if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) ){
            //verifico que o de antes do dominio seja correcto
            $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
            $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
            if ($caracter_ult != "@" && $caracter_ult != "."){
               $mail_correcto = 1;
            }
         }
      }
   }
}

if ($mail_correcto)
   return 1;
else
   return 0;
}
Você joga a variável do e-mail dentro dessa função e ela retorna 1 caso esteja correto e 0 caso esteja incorreto...

 

OBS.: Use

 pra trechos de código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas não entendi. como assim: não entendo muito de php por isso estou com muita dificuldade se você puder comlocar um exemplo de como eu coloca essa função pra funcionar no meu formulario eu agradeceria muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa ER que é melhor...

 

Um tutorial muito bom do nosso amigo Thiago Belém.

http://thiagobelem.net/blog/php/2009/03/05/validacao-de-e-mail-no-php-com-expressoes-regulares-234/

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado mais nao consegui, fiz pelo Dreamweaver a opção de validar Spry mesmo.. mais apenas precisa ter um @ arroba para ser enviado, de qualquer forma 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.