2012-04-25 75 views
0

我今天遇到了一個問題,即我的PHP腳本會在完成時(在apache上)發送服務器錯誤500。代碼是這樣的:PHP腳本拋出內部服務器錯誤500,打開時解決display_errors

//many stuff here that work 
echo "It reached here"; 
exit; 

和我總是達到出口之前的點;命令。做谷歌搜索,我碰到this post,它建議打開display_errors。我做到了,500錯誤消失了。

所以我想問,有沒有人有解釋爲什麼發生這種情況?這SO post描述了一個類似的情況,但沒有解釋。

和往常一樣,在此先感謝

+0

如果你把'exit(1)',錯誤是完全正常的,但默認情況下,代碼應該是'1',這意味着「成功終止「...你可以嘗試通過明確指定'0'來強制成功嗎? '退出(0)' – Tronix117 2012-04-25 08:25:55

+0

我做到了,但沒有任何變化 – periklis 2012-04-25 08:42:34

回答

0

看來代碼在循環中的eval()函數內部生成了一個分析錯誤。這種錯誤不會破壞代碼的執行,但會產生500錯誤

+0

這聽起來像一個PHP錯誤。 – Jason 2016-09-27 10:38:34

2

這很可能是你得到500個狀態碼爲好,但由於PHP呼應的東西到瀏覽器的Apache不會跳的,並顯示它的標準狀態的500錯誤頁面。

您需要驗證實際狀態代碼以確認您仍然不會得到500錯誤。

如果發生致命錯誤,PHP通常會發送一個500狀態碼。由於當時的進程經常失敗(因此導致致命錯誤),並且從那時起沒有生成輸出,Web服務器跳轉併爲用戶提供標準的500內部服務器錯誤頁面。

+0

我明白,但那裏會發生致命錯誤?我確實得到一個500狀態碼btw。 – periklis 2012-04-25 08:44:06

+0

您需要查看錯誤消息以瞭解有關致命錯誤的更多信息以及它發生的位置。您應該將錯誤消息完全添加到您的問題中(您可以縮短文件路徑)。 – hakre 2012-04-25 08:45:20

+0

沒有錯誤信息。我剛在瀏覽器上收到一個狀態代碼500,內容爲「內部服務器錯誤」,以及頁面(這是一個正常的ajax響應) – periklis 2012-04-25 08:47:53

相關問題