间歇性空$ _POST问题

时间:2012-01-09 13:19:05

标签: php apache post centos

在我们的网站上,有时$ _POST被空转到操作页面。

这种情况大约每天提交的表格中约有1-2%。目前每天约有50-100份提交的腐败表格。

我们确定初始页面上有数据。我们尝试使用完全相同的值同时使用$ _POST和$ _GET发送相同的数据。 $ _GET一直到达操作页面,但$ _POST可以到空。

通常,Webkit besed浏览器会发生此错误。手机浏览器似乎也更容易出现这种情况。 IE浏览器的体验比Webkit浏览器少。 而且很少发生在Firefox上。

目前的配置如下:
PHP Version 5.2.15
Centos 5
Apache 2.2.3

我们正在讨论的一件事是将PHP升级到5.3.x. 这听起来像是一次合理的尝试吗?

关于我们如何尝试调试此问题的任何建议?

更新 提交表格如下:

<form action="submit.php?receiver_user_id=<?php echo $_SESSION['receiver_user_id'];?>&sender_user_id=<?php echo $_SESSION['user_id']; ?>" method="post">
  <textarea name="message_text" ></textarea>
  <input type="hidden" name="receiver_user_id" value="<?php echo $_SESSION['receiver_user_id'];?>
  <input type="hidden" name="sender_user_id" value="<?php echo $_SESSION['user_id']; ?>
  <input type="image" name="submit" src="submit.png" value="submit"/>
</form>

2 个答案:

答案 0 :(得分:0)

表单中的某种输入是否会导致发送失败,或者假设您通过空数据库条目判断1-2%会导致存储失败?

[编辑]这听起来很愚蠢...我的意思是,如果你有一个循环以相同的值提交表格1000次,1-2%仍然是空的,或者它可能取决于发送的内容,表格是空的吗?

答案 1 :(得分:0)

添加
<?php header("Connection: close"); ?>
 清除了我们的问题。显然这涉及到keep-alive和IE。你可以在这里读更多关于它的内容: Why does Internet Explorer not send HTTP post body on Ajax call after failure?