我正在尝试通过记录错误并显示404页面来更改system/application/errors
的错误文件的工作方式。但是,有时错误发生在页面中间,我只需要显示错误页面。
我试图检查标头是否已发送并清理输出缓冲区,但它无法正常工作。 有什么建议吗?
更新:我的问题似乎让人感到困惑,所以我会澄清一下。我的目的是在发送一部分内容后发生错误的情况下显示自定义500页,并记录发生错误的条件,以便用户不会看到丑陋的页面和黑客赢得'看到泄漏。主要问题在于在错误发生之前删除内容。
到目前为止无效的策略:
ob_end_clean
$CI = & get_instance(); $CI->output->set_output('only the 500 message');
_output($data)
功能,如果找到system/application/errors/*.php
文件中找到的特定模式,则仅回显500消息非常感谢任何帮助。
答案 0 :(得分:1)
您是否在为codeigniter寻找自定义404错误页面?
答案 1 :(得分:1)
您的意思是更改处理CI错误的默认方式吗?
http://codeigniter.com/user_guide/general/errors.html
http://www.askaboutphp.com/172/codeigniter-handling-errors.html
检查这两个指南,看看如何处理codeigniter和PHP错误。
打开错误记录到文本文件或其他内容,然后使用
关闭所有php错误(这在index.php中设置)error_reporting(E_ERROR);
您应该从E_ALL更改为E_ERROR以仅显示致命运行时问题的消息。这将隐藏除停止脚本执行的所有php错误。
答案 2 :(得分:0)
在此页面上向下滚动至2008年5月27日。 http://php.net/manual/en/function.header.php
如果尚未发送标题,则会执行此操作 标题('Location:'。$ url); 否则它会使用一些JavaScript来重定向。如果禁用JavaScript,则会使用元标记。