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