2009-08-12 125 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