表格提交两次

时间:2012-08-03 03:13:07

标签: php html forms http double-submit-problem

我有一个处理付款的表单,但每300次付款中大约有一次付款,但我的日志显示有两次请求所有这些事件。

我实现了一些JavaScript,它在点击后禁用了提交按钮,它似乎对我来说很好,但我仍然会不时地提交双重提交。

有没有人知道可能导致表单提交两次的其他内容?

2 个答案:

答案 0 :(得分:4)

正如Dagon所说,服务器端检查是你的朋友。为表单的每个实例提供一个随机生成的密钥(guid会很好),并将其存储在数据库中。不接受包含db中已存在的密钥的表单。

另外,您是否只是在表单处理逻辑执行后显示HTML?如果是这样,请在处理表单后尝试重定向。

答案 1 :(得分:1)

这是一种方式:用户按下表单提交按钮后,用javascript禁用它。这应该可以防止用户意外地双重提交表单。它适用于我们实现它的所有站点,因为它。因为有时用户会不耐烦并且多次点击表单提交按钮,这就是为什么你会得到双重请求。你需要确保它适用于所有浏览器(禁用我的意思)。

你也可以在服务器端做这件事,它就更难了。

我们使用类似于Enable/disable submit button with jQuery and Coldfusion server code

中的upvoted答案