Jump to content


Photo

Post Duplicado, Formulario Php


  • Faça o login para participar
2 replies to this topic

#1 srenda

srenda

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 30/03/2007, 02:36

Ola gente.
Eu estou com um grande problema.

É o seguinte.
Eu estou fazendo um sistema em php, que utiliza varios formularios ( a maioria das paginas possui um formulario )

E eu estou utilizando o metodo post, para enviar as informações ao servidor, e gravar os dados no mysql.

Ai acontece o seguinte, eu preencho o formulario, e envio os dados.... tudo ok. Os dados são gravados no mysql... mas se eu clico no botão voltar, do navegador, aparece sempre uma mensagem, dizendo: "Esta pagina não esta no cache, ela foi baseada em dados que voce forneceu ao site. Clique Ok para reenviar essas informações e reprocessar"
Isso no Fire Fox. No IE aparece uma mensagem semelhante... na verdade quase todo mundo ja viu essa mensagem em algum site...

Se eu clico em Ok, todos os dados do formularios são reenviados, dai, toda a informação é duplicada... E isso não pode acontecer em hipotese alguma...
Eu poderia comparar todas as variaveis, com as do mysql, para ver se tem conteudo duplicado, mas não ia funcionar legal tambem não, pois ai, cada vez que o cara clicasse em voltar no navegador, iria dar essa mensagem... ai piora mais ainda a situação....


Eu gostaria de saber, se existe alguma função php, ou algum tratamento especial para esses dados, ou ate mesmo algum javascript, que acabe com esse problema, acho é algo realcionado com o cache da pagina.... não sei dizer direito...


Eu preciso muito da ajuda de alguem. Por que tem muita gente que usa somente as setinhas do navegador, para voltar a pagina.


Agradeço desde ja.

Edição feita por: srenda, 30/03/2007, 02:48.


#2 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 30/03/2007, 05:32

Essa pergunta num tem muito aver com PHP ...
Pois isso é um padrão uma definição dos browser e o PHP não pode inefefir nos browser....
É uma particularidade do método post, e não há NADA que possa mudar isso ....

O máximo que vc pode fazer é ao enviar o form ele grave um cookie ou uma sessão para se a pessoa tentar enviar os dados de novo mostre uma mensagem de erro com um link para ela continuar....

<?php
if (isset($_COOKIE["TravarFrom1"]) && !empty($_COOKIE["TravarForm"])) {
 echo "Você já Submeteu esse Formuláro, Siga em Frente ...";
} else {
 setcookie("TravarFrom1", "Sim");
 print_r($_POST); // Aqui seria a gravação no banco 
}
?>

Edição feita por: sk15, 30/03/2007, 05:32.


#3 srenda

srenda

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 30/03/2007, 11:31

Muito obrigado pela ajuda amigo.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq