【问题标题】:PHP Error Page (custom)PHP 错误页面(自定义)
【发布时间】:2018-08-24 11:19:24
【问题描述】:

我想知道如果出现错误,是否可以重定向到自定义错误页面。 所以我有这个例外:

    if (empty($user['user'])) {

        throw new Exception("Failed to get the correct User", 400);
    }

}catch(DAOException $e) {
    throw new Exception($e->returnErrorMessage(), $e->returnHttpCode());
}catch(Exception $e) {
    throw new Exception($e->getMessage(), $e->getCode());
}

我想将其重定向到自定义错误页面,并显示消息“此激活链接不正确”。 我是否需要更改路线或异常中的某些内容或两者兼而有之? 怎么做? 非常感谢!

【问题讨论】:

  • 有很多方法可以做到这一点。你可以header() 到一个不同的位置,你可以只包含一个 php 脚本,许多 MVC 框架会自动将你带到一个错误控制器,所以这取决于你的设置
  • 你能告诉我如何在我当前的代码中包含这个吗?
  • 嗯,最简单的情况是摆脱异常,并将其替换为require_once 'my-error-page.php'; exit;
  • my-error-page.php 会是什么样子?有什么地方可以看吗?我只想在其中显示“激活链接不正确”的消息。
  • 你对require_once是什么意思,那是我需要在代码中写的吗?像这样: if (empty($user['user'])) { require_once 'my-error-page.php'; exit;} 那会是什么样子?

标签: php exception error-handling


【解决方案1】:

您可以通过 2 种方法做到这一点,

  1. 当您捕获异常时,尝试将异常消息包含在变量中并使用 errorMessage 作为参数重定向到自定义错误页面。所以在自定义错误页面中使用 $_GET['errorMessage']

  2. 当您捕捉到异常时,将其保存到异常表或会话中。然后通过重定向进入自定义错误页面,这样就可以从table/session中获取消息并显示在屏幕上。

注意: 对于 PHP 中的重定向,您可以使用“header()”。在 Javascript 中,您可以使用“window.location.href”。

【讨论】:

  • 如何将其重定向到自定义错误页面,以及自定义错误页面的外观如何?我不明白你的价值是什么意思
  • 使用此代码进行重定向, 自定义错误页面应该看起来像带有标题的普通页面,在页面正文中显示的页脚和错误消息。
猜你喜欢
  • 2012-01-31
  • 2019-01-18
  • 2014-04-24
  • 2014-08-06
  • 2012-03-26
  • 1970-01-01
  • 2015-08-26
  • 2013-08-26
相关资源
最近更新 更多