编辑解决方案:
我仍然不知道它为什么要进行复式输入,但目前我已经做了一些技巧。
我在表单中添加了一个 UID 令牌,生成了一个 MD5 并将其与 DB 条目一起存储。该脚本会检查条目是否已存在。如果是,它会传递条目 ID,如果不是,它会添加一个新的,然后传递 ID 以用于最终确认消息。
幸运的是,表单甚至是 UID 的两倍,所以我能够抓住它。如果是两个不同的UID,那我可能有问题了,哈哈。
我想给 PeeHaa 加分,因为如果其他人发现这个问题,我希望其他人也知道 Post、Redirect 和 Get 是一种很好的编码实践。(发布到您的插入脚本,从页面重定向到确认页面,并使用 GET 获取要显示的值)。
以前的内容:
好的,这是非常基本的。
我知道这里已经被问了无数次了,但是现有的问题都与我的问题无关。
基本的 HTML 表单。没有花哨的 jQuery 或任何东西。
<form id="attendee_confirm" class="regform" method="post" action="http://url.com/wip/events/register/?">
<input name="attendee[0][first_name]" value="Bruce">
<input name="attendee[0][last_name]" value="Wayne">
<input type="hidden" name="reg_form" value="true">
<input type="hidden" name="questions" value="true">
<input type="hidden" name="action" value="done_confirming">
<input type="hidden" name="event_id" value="1">
<input type="submit" name="mySubmit" id="mySubmit" value="Confirmed">
<input type="button" value=" <-- BACK " onclick="history.go(-1);return false;">
</form>
为什么我的表格两次发布它的数据?我真的不明白这个。
这是确认表格。用户在填写完第一个表格后被带到这里,只是为了确认姓名。
第一种形式工作正常,并带来了适当的信息。第二个应该确认并发送电子邮件/流程。
表单发布两次,我只看到第二次尝试的输出。我无法从第一个获得任何输出。
因此,如果我尝试将会话令牌“捕获”添加到表单以尝试捕获重复条目,则允许第一次尝试通过,但用户只能看到第二次捕获。
这可能是服务器问题吗?我的服务器正在运行 ModSecure(最近让我很生气),我真的很沮丧。当我不应该...
编辑信息:
这发生在所有浏览器上,因此它不是特定于浏览器的。
我还尝试将捕获脚本设置为在接收到要处理的信息后重定向,但正如我所提到的,数据首先是由一些不可见的东西发送的,而用户看到的输出实际上是第二个数据。不是第一组。一切仍然翻倍。哎呀。。
服务器日志很糟糕。它发生在一篇文章中。我将仔细检查可能运行两次的脚本......