PHP隐藏致命错误消息并重定向

时间:2014-04-17 11:40:16

标签: php

如果以下代码返回致命错误,我会在页面上收到一条消息,我不希望用户看到。我想隐藏致命错误消息并将用户重定向到另一个页面:

$jinput = JFactory::getApplication()->input;

要隐藏错误消息,我刚刚添加:

error_reporting(E_NONE);

但是我如何抓住并重定向这样的致命错误?

2 个答案:

答案 0 :(得分:3)

与许多其他PHP用户一样,您将error_reporting选项与display errors混淆。你需要后者。

 ini_set('display_errors', 0);

是你真正需要的。虽然错误报告必须仍然始终为E_ALL

答案 1 :(得分:1)

基本上,你不能“捕获”致命错误,因为它们会停止程序执行。但是有一种方法可以处理它们。注册您自己的关机处理程序并检查上一个错误是否致命。

<?php
function shutdownHandler()
{
    $error = error_get_last();
    if ($error['type'] == E_ERROR) {
        your code goes here;
    }
}
register_shutdown_function('shutdownHandler');

演示:https://eval.in/137869