Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML POST有时不向PHP脚本提交POST数据_Php_Html_Forms_Post - Fatal编程技术网

HTML POST有时不向PHP脚本提交POST数据

HTML POST有时不向PHP脚本提交POST数据,php,html,forms,post,Php,Html,Forms,Post,好吧,这有点奇怪 所以我有很多人在网上工作,填写网上表格。然后,这些表单被发布回同一页面,该页面记录条目,然后给它们一个新条目 问题是大约1/100的条目似乎丢失了。根据我的日志,PHP脚本认为提交这些文件时没有页面刷新之类的POST数据。但该网站的许多用户都有这个问题 我不认为这是我的代码或HTML表单中的错误,因为每个页面/条目的代码和HTML基本相同 我绞尽脑汁想弄清楚问题出在哪里。我在PHP脚本上放了非常详细的日志,记录了所有内容。根据这些日志,丢失的条目丢失是因为没有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用于一次加载两个页面并替换它们。因此,在表单onclick事件上打开parent.Switch。这非常有效。

有了这一点信息,猜测可能是在验证表单时出现JavaScript错误,导致location.href或location.reload事件,从而导致页面被GET请求重新加载?

确定,页面上唯一一点javascript非常简单,每次都在做同样的事情。javascript有时会随机失效吗?可能访问者已经关闭了javascript。你的JavaScript在做什么?它们都有JavaScript。这是同一个人做的条目。javascript正在做一个预加载:它将一个iframe移出视图,另一个移到视图中?还要确认这些失败的请求确实是GET请求,而不是POST请求。我认为很可能是在没有框架的情况下打开表单,或者由于其他原因,无法访问父对象。这将导致Javascript错误,页面将重新加载,表单数据丢失。您可以直接打开display.php来复制它。HTML是否提供了一些代码