HTML POST有时不会将POST数据提交给PHP脚本

时间:2013-12-29 15:27:21

标签: php html forms post

好的,这有点奇怪。

所以我有很多人在网上填写在线表格。然后将这些表单发回到同一页面,该页面记录该条目,然后为它们提供一个新条目。

问题是大约1/100的条目似乎丢失了。根据我的日志,PHP脚本认为这些已经提交,没有POST数据(如页面刷新)。但该网站的许多用户都遇到了这个问题。

我不知道这可能是我的代码或HTML表单中的错误,因为代码和&每个页面/条目的HTML基本相同。

我最终想知道问题出在哪里。我在PHP脚本上放了非常详细的日志,记录了所有内容。根据这些日志,丢失的条目丢失,因为没有POST数据(甚至没有$_REQUEST['submit']变量集),但是用户都坚持按下提交按钮并且没有刷新页面。

这是正常的吗?有什么办法解决吗?

表格如下:

<form action="display.php" method="POST">
<textarea name="desc" cols="80" rows="20">'.$description.'</textarea>
<input type="hidden" name="savepk" value="1"/>
<INPUT type="hidden" NAME="pibn" VALUE="3434"/>
<INPUT TYPE="hidden" NAME="user" VALUE="12"/>
<INPUT TYPE="hidden" NAME="what" VALUE="2"/>
<input type="hidden" name="pk" value="1"/>
<input type="hidden" name="go" value="0/>
<input type="hidden" name="debug" value="0"/>
<INPUT TYPE="submit" NAME="submit" VALUE="Done (10)" ONCLICK="parent.Switch();" style="width:300;height:40px;font-weight:bold;background-color:#F2FF9E;"/>
</form>

包含javascript的父页面是:

<HTML><HEAD><META NAME="ROBOTS" CONTENT="NOINDEX">
<script type="text/javascript">
var on=0;
function Switch()
    {
    if (on==0)
        {
        on=1;
        document.getElementById("frame0").style.top="-1000";
        document.getElementById("frame1").style.top="0";
        }
    else
        {
        on=0;
        document.getElementById("frame1").style.top="-1000";
        document.getElementById("frame0").style.top="0";
        }
    }
</script>
</HEAD><BODY>
<iframe src="display.php" frameborder="0" width="100%" height="100%" style="position:absolute; left:0; top:0;" class="frame0" id="frame0"></iframe>
<iframe src="display.php" frameborder="0" width="100%" height="100%" style="position:absolute; left:0; top:-1000;" class="frame1" id="frame1"></iframe>
</BODY></HTML>

该javascript用于一次加载2个页面并交替使用它们。因此,表单onclick事件上的parent.Switch()。这非常有效。

1 个答案:

答案 0 :(得分:-1)

有了这些小信息,一个疯狂的猜测是,有一个JavaScript错误(可能在验证表单时)导致location.hreflocation.reload()事件导致页面重新加载GET请求?