2009-08-12 127 views
1

对于我的开发环境,我最近在IIS上从PHP 5.2 w/ISAPI迁移到了PHP 5.3的w/fastCGI,当我遇到错误(例如函数名称不正确)时,我习惯于PHP向浏览器回报致命错误等。间歇性地,而不是收到错误我收到一个HTTP 500.如果浏览与Firefox这不会发生。IE7上的HTTP 500错误

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

有谁知道我应该看看?

的display_errors设置为开启....

试图在注释中添加代码,这是丑陋所以我追加:
示例代码: 的index.php <?php php_infowrong(); ?>

如果我键入网站的网址,我得到:

在Firefox我收到:PHP致命错误:在d调用未定义功能php_infowrong():\网络\ pathtowebsite \的index.php上线2

在Internet Explorer我收到:HTTP 500内部服务器错误

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

如果我改变的index.php回到它的原始erronous形式,并刷新页面那么IE将显示:PHP致命错误:在d调用未定义功能php_infowrong():\网络\ pathtowebsite \的index.php

+0

一些代码如何? – 2009-08-12 18:12:54

+0

示例代码: index.php <?php php_infowrong(); > 如果我在网站输入URL,我得到: 在Firefox我收到:PHP致命错误:在d调用未定义功能php_infowrong():\网络\ pathtowebsite \的index.php上线2 在Internet Explorer上收到:HTTP 500内部服务器错误 如果我然后将index.php更改为 <?php phpinfo(); ?> 然后IE和Firefox都给出正确的php_info页面。 >继续下一条评论 – 2009-08-12 18:21:37

+0

如果我将index.php更改回原始的错误表单并刷新页面,那么IE会显示:PHP致命错误:调用未定义函数php_infowrong()在D:\ Web \ php53.imperialcable .COM \公用\指数。在线2 – 2009-08-12 18:22:08

回答

2

我不知道这是否适用于IE7,但是IE之前的版本有这个“功能”里,如果一个返回从服务器太短浏览器将用其自身的错误页面。我在微软知识库中发现了this,严重的古老(IE4!),但值得一看。

+0

这是正确的。您需要将错误填充到512字节,或者单击工具/ Internet选项/高级,然后取消“显示友好错误”。 使用Fiddler,你会看到相同的HTTP/500将返回到这两个浏览器。 – EricLaw 2009-08-13 14:07:10

-2

你可以在标题中试试这个设置吗? header(“HTTP/1.1 304 Not Modified”);

Bizarre bug when trying to use HTTP Caching Headers from PHP

+0

以及只有当他们是一个错误的代码....你是否建议我输出该头(()所有的回应,以防万一代码可能以后生成一个错误?引用的问题似乎没有解决同一个问题。 – 2009-08-12 18:27:53