【问题标题】:Intermittent empty $_POST issue间歇性空 $_POST 问题
【发布时间】:2012-02-06 00:33:45
【问题描述】:

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

每天提交的表单中大约有 %1-2 会发生这种情况。目前每天大约有 50-100 个损坏的表单提交。

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

这个错误经常发生在基于 Webkit 的浏览器上。手机浏览器似乎也更容易出现这种情况。 IE 浏览器比 Webkit 浏览器体验到这一点要少。 Firefox 也很少发生这种情况。

目前的配置是这样的:
PHP 版本 5.2.15
Centos 5
阿帕奇 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>

【问题讨论】:

  • "在我们的网站上,我们有一个错误,我们已经一年多无法修复。" - 也许是时候聘请专家了?
  • 可能是由于发布的数据多于post_max_size?请查看stackoverflow.com/questions/8573664/php-empty-post 了解更多信息。
  • @MitchWheat 令人惊讶的是,即使是专家也不是什么都知道
  • 这个表单使用了什么样的表单元素?你可以发布任何代码吗?
  • @MitchWheat 无处可去,只是一个评论......专家之所以成为专家,是因为他们在遇到困难时会寻求正确的帮助(您可能会说这就是 Haluk 正在做的事情)。从长远来看,让“专家”来解决所有你无法解决的问题会让你一事无成

标签: php apache post centos


【解决方案1】:

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

[edit] 这听起来很愚蠢...我的意思是,如果您有一个循环提交 1000 次相同值的表单,那么 1-2% 是否仍然为空,或者取决于发送的内容,表格会变空吗?

【讨论】:

  • 我们在将它们提交到数据库之前捕获空的 $_POST。但我们会通过电子邮件收到有关错误和技术细节的通知。
  • 那些发送失败的“技术细节”有什么值得一提的吗?您使用什么代码来确定错误?
  • 我们从会话中获取用户信息。查看会话是否处于活动状态。我们得到 SERVER_CONTENT_LENGTH。如果帖子为空,则此内容为空。我们还检查 SERVER_REQUEST_URI 以查看获取变量是否在 url 中。
  • 我想你指的是$_SERVER['REQUEST_URI']和content_length。从后面来看,您正在上传文件 - 某些文件输入是否可能导致发送失败(错误的 mime 类型、扩展名、文件大小......)?也不要害羞地在你的问题中发布代码 - 它可以更容易地发现可能的错误:)
  • 不,这不是文件上传。只是简单的文本区域。是的,让我分享代码。
【解决方案2】:

正在添加
&lt;?php header("Connection: close"); ?&gt;
解决了我们的问题。显然这与keep-alive和IE有关。你可以在这里读更多关于它的内容: Why does Internet Explorer not send HTTP post body on Ajax call after failure?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多