Ir para conteúdo

POWERED BY:

Arquivado

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

Cristiano A. Franco

Postagem para a mesma página

Recommended Posts

Pessoa fiz um script q grava num arquivo .txt os dados inseridos num formulário.a postagem é para a mesma página.o problema é q ao dar reload na página depois os dados continuam a ser inseridos no arquivo.txt, sem precisar q se aperte o botão de enviar.Gostaria de saber como posso resolver este problema (é preciso q seja postado de volta para a mesma página, se fosse pra outra era fácil resolver).alguem pode me ajudar? :unsure:

Compartilhar este post


Link para o post
Compartilhar em outros sites

É o seguinte tenho uma página q se chama form.php e nela tem o código pra tratar a entrada do formulário (contido na propria página.

 

O action do formulário aponta pra ela mesma.

 

o problema é q quando aperto F5 ou clico no botão "atualizar" do navegador os dados são postados novamente.

 

Já tentei fazer algo como:

 

If ($_POST["btnOK"]) {# código...}

E no formulário btnOK é o nome do botão submit.

 

Só q não funciona. Pela lógica ela pra ele processar apenas se o usuário clicasse no botão. Mas basta dar reload na páginca (F5) q o código regrava os dados.

 

Já tentei fazer algo do tipo.

 

unset($_POST);

tb não funcionou.

 

Me ajudem por favor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como você separar as páginas, pois acho que não terá como resolver não.Já passei por isso uma vez e ao invés de ficar quebrando a cabeça separei as páginas deixando uma para o form e outra para tratar estes dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não tem como você separar as páginas, pois acho que não terá como resolver não.

 

Já passei por isso uma vez e ao invés de ficar quebrando a cabeça separei as páginas deixando uma para o form e outra para tratar estes dados.

Mas o pior é q eu já separei as páginas, coloquei a action pra outra página.

 

Quandou dou reload na outra página, q trata os dados e os inseri no BD, acontece a m,esma coisa.

 

Resumindo, em PHP não se pode dar reload de página ou apertar F5.

 

Preciso q alguem me prove q estou errado! ^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não pode cara. Se você der reload em uma página que só tem o form não deve acontecer nada, deve ser normal.Na dos dados talvez ocorra algum erro, dá até pra tratar, mas acho desnecessário.Qual o erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não pode cara. Se você der reload em uma página que só tem o form não deve acontecer nada, deve ser normal.

 

Na dos dados talvez ocorra algum erro, dá até pra tratar, mas acho desnecessário.

 

Qual o erro ?

Wallace o q tá acontecendo é q aparece esta mensagem quando dou reload ou aperto F5:

 

Imagem Postada

 

E os dados são repostados se eu clicar em "Repetir".

 

Gostaria de saber como evitar essa caixa de alerta se o usuário dar reload.

 

Deve haver algum meio de resolver isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui está o script q grava as informações no banco de dados:

 

<?############### ESCREVENDO NO BLOG ###############$arquivo_blog = "blog.txt";if (empty($_POST["txtnome"]) and empty($_POST["txtemail"]) and empty($_POST["txtmensagem"])) {$msg = "Campos vazios.";}else {$barra1 = array("#", "\r\n");$barra2 = array("número", "<br>");$nome = str_replace($barra1, $barra2, $_POST["txtnome"]);$email = str_replace($barra1, $barra2, $_POST["txtemail"]);$mensagem = str_replace($barra1, $barra2, $_POST["txtmensagem"]);$data_atual = date("d.m.y - H:i:s");$mensagem = strip_tags($mensagem, "<font><img><p><br><a><b><i><u>\r\n");$conteudo_blog = $nome."#".$email."#".$mensagem."#".$data_atual;if (!$abrir_blog = fopen($arquivo_blog, "a")) {$msg = "Erro ao tentar acessar os dados.";exit;}if (!fwrite($abrir_blog, "$conteudo_blog\r\n")) {$msg = "Erro ao tentar gravar os dados.";exit;}fclose($abrir_blog);$msg = "Mensagem enviada<br>com sucesso.";?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo isso ocorre, pq a pg foi montada com base em dados postados e ela só pode ser exibida com esses dados, isso só ocorre se tiver session, senão ele exibe a pg, voltando, msm com dados postados.Flwwwwwwwwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo isso ocorre, pq a pg foi montada com base em dados postados e ela só pode ser exibida com esses dados, isso só ocorre se tiver session, senão ele exibe a pg, voltando, msm com dados postados.Flwwwwwwwwww

Mas se isto só ocorre se tiver session eu nunca poderei fazer, por exemplo, um guestbook com session pq sempre vai dar isso.Nunca poderei usar session num form.Mas o mais intrigante não é isso... é q não estou usando session... ou se estou, eu não sei, deve ser padrão do php.Eu quero uma solução pra resolver esse problema.Isto é importante pra mim neste momento, veja o código e me diga como eu posso resolver, por favor, em nome de Jesus. :wacko:

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está dando o F5, por exemplo qdo aparece esta mensagem:

Mensagem enviada com sucesso."

 

Daí não jeito mesmo, vai gravar novamente, o que você pode fazer é ao invés de dar esta mensagem usar uma mensagem do javascript e retornar para o form, mais ou menos assim:

  echo"<script>\n";   echo"window.alert('Sucesso')\n";   echo"history.back()\n";   echo"</script>\n";

você receberá uma caixa de mensagem de Sucesso com um OK para clique, então não poderá dar o F5.; ao clicar no OK você será direcionado para a tela anterior (history.back).

 

Procure dar uma pequisada no fórum javascript, pois você pode usar o window.location que acho que será mais seguro.

 

Mas enfim, o que te passei já resolve teu problema.

 

Tenta aí, qualquer coisa volta.

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.