1

对于我的开发环境,我最近从 IIS 上的 php 5.2 w/ ISAPI 迁移到 IIS 上的 PHP 5.3 w/ fastCGI,当我遇到错误(例如函数名不正确)时,我习惯于 PHP 报告 FATAL ERROR 等。 . 到浏览器。间歇性地而不是收到错误,我收到 HTTP 500。如果使用 firefox 浏览,则不会发生这种情况。

它似乎与 IE 缓存内容类型或类似的 HTTP 代码有关。我的理由是,如果我消除了有问题的代码块并刷新页面(在 IE 中),然后将有问题的代码放回,我会看到错误消息。

有谁知道我应该看什么?

display_errors 设置为 On....

试图在注释中添加代码,但它很难看,所以我要附加:
示例代码:index.php <?php php_infowrong(); ?>

如果我输入网站的 URL,我会得到:

在 Firefox 上,我收到:PHP 致命错误:在第 2 行的 D:\Web\pathtowebsite\index.php 中调用未定义函数 php_infowrong()

在 Internet Explorer 上,我收到:HTTP 500 Internal Server Error

如果我将 index.php 更改为 <?php phpinfo(); ?> Then IE 和 Firefox 都会给出正确的 php_info 页面。

如果我将 index.php 改回原来的错误形式并刷新页面,那么 IE 将显示:PHP Fatal error: Call to undefined function php_infowrong() in D:\Web\pathtowebsite\index.php

4

2 回答 2

2

我不知道这是否适用于 IE7,但以前版本的 IE 具有此“功能”,如果从服务器返回的错误页面太短,浏览器将替换它自己的错误页面。我在 MS 知识库中找到了这个,非常古老(IE4!),但可能值得一看。

于 2009-08-12T22:38:43.880 回答
-2

您可以在标题中尝试此设置吗?header("HTTP/1.1 304 未修改");

尝试使用 PHP 中的 HTTP 缓存标头时出现奇怪的错误

于 2009-08-12T18:03:53.203 回答