对于我的开发环境,我最近在IIS上从php 5.2 w / ISAPI移动到PHP 5.3 w / fastCGI,当我有错误时(例如函数名称不正确)我习惯于PHP报告回FATAL ERROR等...到浏览器。间歇性而不是接收错误我收到HTTP 500.如果用Firefox浏览,则不会发生这种情况。
它似乎与IE缓存内容类型或HTTP代码有关。我的理由是,如果我消除了大量违规代码并刷新页面(在IE中),然后将违规代码放回去,我将看到错误消息。
有谁知道我应该看什么?
display_errors设置为On ....
试图在评论中添加代码并且它很难看,所以我附加:
示例代码:
的index.php
<?php
php_infowrong();
?>
如果我输入网站的网址:
在Firefox上我收到:PHP致命错误:在第2行的D:\ Web \ pathtowebsite \ index.php中调用未定义的函数php_infowrong()
在Internet Explorer上,我收到:HTTP 500内部服务器错误
如果我然后将index.php更改为
<?php
phpinfo();
?>
然后IE和Firefox都会给出正确的php_info页面。
如果我将index.php更改回原来的错误形式并刷新页面,那么IE将显示:PHP致命错误:在D:\ Web \ pathtowebsite \ index.php中调用未定义的函数php_infowrong()
答案 0 :(得分:2)
我不知道这是否适用于IE7,但以前版本的IE有这个“功能”,如果从服务器返回的那个太短,浏览器将替换自己的错误页面。我在MS知识库中发现this,非常古老(IE4!),但可能值得一看。
答案 1 :(得分:-2)
你可以在标题中尝试这个设置吗? header(“HTTP / 1.1 304 Not Modified”);
Bizarre bug when trying to use HTTP Caching Headers from PHP