O ÚNICO site que não é um blog, alojado no blogger. É assim tipo um é pá... um..., um coijo...

quinta-feira, julho 02, 2009

php: evitar dupla submissão de formulário

Esta já devia ter sido resolvida, mas como há pouco não conseguir encontrar a solução em lado nenhum, tive de ir a um site que já tinha feito para refrescar a memória.

Um problema comum para quem faz sites é as pessoas submeterem os seus dados (por exemplo de pagamento de um serviço) e depois, estupidamente, enganam-se e carregam na tecla f5. Isto faz com que o formulaŕio seja re-submetido (ok, alguns browsers perguntam se querem re-submeter os dados, mas muitas pessoas dizem que sim...). Ora qual é a solução? Encaminhar para uma página nova. Mesmo assim não funciona. Estava a fazer uma página com a framework CodeIgniter.
Neste caso a solução é usar a função redirect, com um parâmetro extra "refresh" para limpar os dados do envio do formulário:


redirect('controlador/funcao_que_chama_a_vista', 'refresh');


Para quem é mais purista e usa php em "bruto", lá terá de ser a função header:


header('refresh: 0; url=http://www.example.net');


Pronto, da próxima vez que precisar já sei onde hei-de ir para relembrar... o pior é que provavelmente nunca mais vou esquecer...

Sem comentários:

Enviar um comentário

eXTReMe Tracker