【发布时间】:2009-10-29 21:54:41
【问题描述】:
当用户点击后退按钮时,阻止表单被重新处理的最佳方法是什么?
我正在关注Post/Redirect/Get pattern,所以如果按 F5 我没有问题,但返回按钮仍然提供重新提交表单的机会。如果此表单是信用卡处理页面,那就不好了。
有人问过这个问题here,但措辞和答案质量很差,并不完全针对这个问题。
我有 form.php 提交给自己。如果提交时输入数据没有错误,用户将被重定向到 form_thanks.php。重新提交 form.php(糟糕!)后回击(和“发送”或“重新提交”),然后将它们带回 form_thanks.php。
如果可能,还请包括不涉及使用会话的解决方案。
【问题讨论】:
-
为什么要在没有会话的情况下实现这个?您可能需要某种类型的服务器端存储来检测重复的帖子。
-
见下文,我建议将令牌存储在数据库中,以及它是否已被使用。这绝对是某种类型的服务器端存储,而不是会话。
标签: php forms form-submit back submission