编辑解决方案:
我仍然不知道它为什么要进行双重录入,但暂时我做了一些黑客攻击。
我在表单中添加了一个UID令牌,生成了MD5并将其与DB条目一起存储。该脚本会检查条目是否已存在。如果是,则传递条目ID,如果没有,则添加新的条目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(最近一直在惹恼我),我真的很沮丧。我不应该为我的活动加倍占用......
修改信息
这种情况发生在所有浏览器上,因此它不是特定于浏览器的。
我还尝试将捕获脚本设置为在接收要处理的信息后重定向,但正如我所提到的,数据首先由一些不可见的东西发送,而用户看到的输出实际上是第二个数据。不是第一集。一切仍然加倍。 OWF ..
服务器日志是破产。它发生在一个帖子中。我要仔细检查可能会运行两次的脚本.....
答案 0 :(得分:0)
您的ACTION参数看起来有点时髦。为什么最后会出现问号?您的方法是POST,但您的ACTION网址暗示该方法是GET。
答案 1 :(得分:0)
我仍然不知道它为什么要进行双重录入,但暂时我做了一些黑客攻击。
我在表单中添加了一个UID令牌,生成了MD5并将其与DB条目一起存储。该脚本会检查条目是否已存在。如果是,则传递条目ID,如果没有,则添加新的条目ID,然后传递ID以获得最终确认消息。
幸运的是,即使是UID,这个形式也在加倍,所以我能够抓住它做到这一点。如果它是两个不同的UID,那么我可能遇到了问题,哈哈。
我想点PeeHaa,因为如果有其他人发现这个问题,我希望其他人也知道Post,Redirect和Get是一个很好的编码实践。 (发布到您的插入脚本,从页面重定向到确认页面,并使用GET获取要显示的值。)
答案 2 :(得分:-1)
我不止一次发现这个问题我觉得这个问题比例外更有规律。任何人都可以纠正,如果他们认为我错了,并为html代码中的错误提供了很好的解释,因为这些年我的代码中都没有发现错误。