`
阿尔萨斯
  • 浏览: 4149934 次
社区版块
存档分类
最新评论

警惕E_ALL

 
阅读更多
让人心痛的回忆,我浪费了将近1个小时,才明白自己程序里错在哪了。想起当年用Emeditor写程序的时候,折腾了一下午,发现少写个小括号。很久没有这么废了。

开发Camel的过程中,我把错误报告的级别设为了”E_ALL”。看到好多大牛都是这么做的,这样所有notice级别的错误都能暴露出来,更能一目了然。用了E_ALL,果然每个页面加载时都会跳几个“Notice”的错误出来,看多了也不当回事了。

然后今天尝试登录Camel后台,登录这一块是很久以前做的了。之前已经做过许多次登录,所以Camel登录这一块就没有做UnitTest。一看发现没法登录,我就慌了。仔细地检查了一下各个模块之间的逻辑关系,没找到毛病,只好一点一点地修改、调试,可一直都不对。Cookie没法成功发送,自然也去不了后台。到后来甚至让我对我自己装的PHP产生了怀疑,可我的PHP是直接更新自apt源的。我好好规划的模块化程度这么高的Camel,在被我七手八脚调试的过程中,弄得七零八落了。

万念俱灰的时候,突然注意到在我不当回事的“Notice”中,有一个“Warning”。内容是:

Cannot modify header information - headers already sent by (output started at /var/www/camel/v/admin/Utlities.php:9)

一拍脑袋,我怎么没早发现呢?之所以服务器不能发送Cookie,是因为服务器为了输出那些“Notice”们,就打开了输出流,于是就没法发送 header信息。而Cookie是包含在header中的。学着那些牛人们整了个E_ALL,结果把自己给害了。如果你做事和我一样没心没肺,还是别用 E_ALL了,极端一点的话用一句error_report(0),关掉所有的错误报告,世界更干净。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics