【问题标题】:PHP Page forced download IN ERRORPHP页面强制下载错误
【发布时间】:2011-03-25 23:44:06
【问题描述】:

这是一个奇怪的问题,但它发生的足够多,我想问。

由于某种原因,有时浏览器会强制一个 php 页面下载到浏览器,它总是出现 0 字节。

请注意,我并不是要强制下载,而且我对标题和强制文件下载非常熟悉,我所说的是浏览器无法处理页面的问题,因此它以强制下载的形式吐出。

一个例子:我在 PHP4 服务器和 PHP5 云服务器上运行了 phpMyAdmin 2.3.2。在 PHP5 云服务器上,如果我在表格上单击“浏览”,它会尝试将 sql.php 作为下载文件吐出,结果为空。

我知道细节是模糊的,我不希望有一个解决方案,就像在哪里寻找或其他人是否经历过同样的事情的一些想法一样多。

奇怪的更新:

当 URL 的所有大写字母都包含“Select”一词时,它会中断。

作品: phpmyadmin/sql.php?lang=en-iso-8859-1&server=1&db=371016_map_db&table=Data_Recovery&sql_query=Select

休息: phpmyadmin/sql.php?lang=en-iso-8859-1&server=1&db=371016_map_db&table=Data_Recovery&sql_query=SELECT

面条那个!

【问题讨论】:

  • 我在重大错误上发生过这种情况,通常是段错误,有时是操作码缓存(如 apc)的罪魁祸首。
  • 打开 Fiddler,浏览直到你看到它发生。如果出现这种情况,请查看响应中的标头。
  • 我使用 Tamper Data 来查看它,并且它(如预期的那样)作为 application/x-unknown-content-type 出现。但是,我在最顶部将标题设置为 text/html,所以我认为这是服务器配置问题。
  • 听起来确实如此。 :)

标签: php phpmyadmin


【解决方案1】:

回答:

事实证明,SELECT、UPDATE 和 INSERT(是的,全部大写)这些词在 The RackSpace 云上是被屏蔽的词。您不能通过 GET 请求传递这些,只能通过 POST。

但是,如果您将它们更改为选择、更新和插入,它们就可以正常工作。似乎他们并没有阻止一切。

【讨论】:

    【解决方案2】:

    当我尝试访问没有有效网络路由的服务器时,我看到了这种情况。例如,我在 Firefox 中设置了一个隧道代理,通过 ssh。然后尝试连接到 localhost - 我下载了一个 0 字节的 PHP 文件。

    下载正在进行,因为它有 PHP 的扩展,没有内容,并且服务器没有向您发送 MIME 类型,因此浏览器不知道如何处理它,并恢复为下载。

    听起来像是服务器配置错误。

    PS。停止使用 PHP 4。

    【讨论】:

    • 我们是。但我们仍在转变过程中,这是那些挥之不去的“奇怪”问题之一。
    【解决方案3】:

    根据我的经验,这有时会伴随网络服务器的分段错误,因为 php 脚本表现不佳(foo(){foo();} 类型的崩溃)

    分段错误记录在 apache 错误日志中。

    【讨论】:

      猜你喜欢
      • 2011-01-07
      • 2012-06-27
      • 1970-01-01
      • 2019-10-22
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 2014-07-30
      • 2014-01-21
      相关资源
      最近更新 更多