【问题标题】:Using mysql_connect in php 5.4.9 on ubuntu empties $_POST, Globals在 ubuntu 上的 php 5.4.9 中使用 mysql_connect 清空 $_POST,Globals
【发布时间】:2025-12-01 05:30:01
【问题描述】:

我有一个最奇怪的问题 - 我已经将一个复杂的 PHP 站点从 Win 2008 移到了一个 linux 机器上,并发现当我 POST 到一个页面时,该页面打开了一个 MySQL 连接,POST 被清空;实际上整个 $GLOBALS 数组都是空的。

有人遇到过这种情况吗?

【问题讨论】:

  • 您是否建议$GLOBALS 在调用mysql_connect() 之前为非空,然后立即为空?
  • 嗨,eggyal,类似的东西。如果我在没有 mysql_connect 的页面上 print_($GLOBALS) (不管任何查询等,只需要 mysql_connect),那么 globals 数组是空的。如果我注释掉 mysql_connect 行,则数组已满。文件的两个版本之间的唯一区别是 mysql_connect。
  • 终于找到了它——这实际上是一个浏览器问题——只发生在 Firefox 中。当我有更多时间时会找到细节。

标签: php mysql linux ubuntu


【解决方案1】:

如果它在您的 Windows 环境中有效,但在 Linux 环境中无效,则很可能是配置问题。您应该检查的一些 php.ini 设置是:

  • post_max_size - 应该足够大以处理您尝试发布的数据量。

如果在您的 PHP 构建中使用 Suhosin 补丁:

  • suhosin.post.max_vars - 确保它足够大以处理数据。
  • suhosin.request.max_vars - 确保它足够大以处理数据。

此外,我在自己的项目中看到,有时 .htaccess 文件中的 Mod_Rewrite 规则可能会导致丢弃变量,因此请确保不会发生这种情况。

【讨论】:

  • 不,他们都很好
最近更新 更多