Ir para conteúdo

POWERED BY:

Arquivado

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

NFelipeFL

[Resolvido] Erro com formularios... $_POST.

Recommended Posts

bom, quero dizer que tudo está funcionando 100% perfeitamente.

 

Mas tem uma questão: o usuario pode acessar diretamente o arquivo do action= no form. Vendo o código fonte.

 

 

ex: Se o cliente for olhar o codigo fonte, vai aparecer:

<form name="formulario" method="post" action="sucess.php">

 

Caso o cliente acesse diretamente sem preencher os forms corretamente, indo no browser e digitando: www.meusite.com.br/sucess.php, irá escrever no meu banco de dados... mas dados em branco.

 

Tem alguma forma de evitar isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cheque os dados que está recebendo!

 

exemplo:

 

Formulario.php

 

Nome    |=========|
E-mail  |=========|
Fone    |=========|

|=Submit=|

 

 

sucess.php

<?
if(isset($_POST['nome']) and isset($_POST['mail']) and isset($_POST['fone'])){

//executa a query pra incluir o registro

}else{

echo 'Ocorreu um erro ao tentar acessar esta pagina!'; // Aki mostra o erro caso o usuário tente fazer isso!
}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim.

 

No seu formulário pega o campo qualquer, por exemplo input name="nome"

 

Na página susses.php

// Verifica se existe o POST nome e se tem algo digitado (!empty) = diferente de vazio.
if(isset($_POST['nome']) && !empty($_POST['nome'])
{

 executa a gravação no banco

}
else
{
  // entrou na página sem dados, então redireciona para a pagina do formulário
  header('Location: http://www.seusite.com/page_do_formulario.php');
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim.

 

No seu formulário pega o campo qualquer, por exemplo input name="nome"

 

Na página susses.php

// Verifica se existe o POST nome e se tem algo digitado (!empty) = diferente de vazio.
if(isset($_POST['nome']) && !empty($_POST['nome'])
{

 executa a gravação no banco

}
else
{
  // entrou na página sem dados, então redireciona para a pagina do formulário
  header('Location: http://www.seusite.com/page_do_formulario.php');
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Também pode usar $_SERVER[ 'HTTP_REFERER' ] para verificar se ele entrou direto ou veio da página que você quer.

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.