gpt4 book ai didi

PHP 隐藏 fatal error 信息并重定向

转载 作者:行者123 更新时间:2023-12-05 08:58:29 26 4
gpt4 key购买 nike

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

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

为了隐藏错误信息,我刚刚添加了:

error_reporting(E_NONE);

但是我该如何捕获并重定向这样的 fatal error 呢?

最佳答案

向用户隐藏错误

这是一个非常普遍的误解,人们经常将 error_reportingdisplay_errors 设置混淆。你需要后者。

 ini_set('display_errors', 0);

是真正向网站访问者隐藏错误的东西。而error_reporting必须始终保持在E_ALL

错误重定向

这种想法违反了HTTP协议(protocol)最基本的规定。发生不可恢复错误的页面必须返回 5xx 状态代码,而不是 3xx。因此你永远不应该做任何重定向。必须返回 5xx 状态代码(即 500),并且您要在此页面上显示的任何内容都必须正确显示,没有重定向。

捕获 fatal error

鉴于错误是不可恢复的,您所能做的就是显示错误页面,您在这里真正需要的是一个站点范围的错误处理程序。一个可以捕获错误并执行的代码上面描述的所有内容:返回 500 HTTP 状态代码,显示一些一般错误页面,并且非常重要的是,log 错误消息以供将来检查。为了创建这样的处理程序,您需要三个函数,set_error_handler()、set_exception_handler() 和 register_shutdown_function()。您可以在我关于 PHP error reporting 的文章中看到使用所有三个函数的代码的简化示例。 .

关于PHP 隐藏 fatal error 信息并重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23132163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com