我今天遇到了一个问题,我的PHP脚本会在完成后发送服务器错误500(在apache上)。代码类似于:
//many stuff here that work
echo "It reached here";
exit;
我总是在出口前达到目的;命令。在进行谷歌搜索时,我遇到this post,建议启用display_errors。我做到了,500错误就消失了。
所以我想问,有没有人解释为什么会这样?这个SO post描述了一个类似的案例,但没有解释。
一如既往,提前谢谢
答案 0 :(得分:2)
很可能你也获得了500状态代码,但是因为PHP回应了浏览器,所以apache不会跳进并显示它的标准状态500错误页面。
您需要验证实际状态代码,以确认您仍然不会收到500错误。
如果发生致命错误,PHP通常会发送500状态代码。由于此时进程通常失败(因此导致致命)并且从那时起没有生成输出,因此Web服务器会跳入并向用户提供标准的500内部服务器错误页面。
答案 1 :(得分:0)
似乎代码在循环中的eval()函数内生成了解析错误。这种错误不会破坏代码执行,但会产生500错误