Ale*_*lex 6 php apache encoding codeigniter
有没有人知道如何$config['compress_output'] = true在CodeIgniter中找到泄漏的位置引起这个"内容编码错误" ?
我试图调试这个错误好几天了,但我似乎无法找到漏洞的位置.LogLevel是的,debug但是当发生此错误时,我在日志中看不到任何信息.
那么,任何想法如何调试这个?
我真的不想禁用该compress_output功能,我只是想看看如何跟踪错误产生的位置
我一遍又一遍地看着控制器中是否有任何输出......并且没有输出,所以其他一些必须是错误引发的.没有模型/数据库,只有控制器,库,帮助器和视图
Jor*_*son 17
此问题是输出缓冲开始的位置.检查config变量是否system/core/Output.php在_display().在很多代码运行后,它启动gzipped缓冲.这使得在缓冲开始之前输出的可能性已经发生.
随着compress_output集来false也没关系,因为没有进行编码.随着它设置为true你最终混合内容.某些输出是编码的,有些不是导致压缩错误的输出.
有两种解决方案:
1)您可以将compress_outputset设置为false并添加ob_start('ob_gzhandler');到index.php文件的顶部.这将确保所有输出始终被gzip压缩,包括错误.
2)另一种解决方案是添加ob_flush();之前ob_start('ob_gzhandler');在system/Output.php.这将在没有错误时进行gzip输出,并在出现错误时为您提供未编码的内容.
我认为2是更好的解决方案,应该由CodeIgniter团队实施.但是如果您不想使用系统代码(升级时更改将会消失),那么1对您来说是更好的解决方案.
| 归档时间: |
|
| 查看次数: |
10041 次 |
| 最近记录: |