无法在 OpenCart (PHP) 中禁用错误​​报告

Posted

技术标签:

【中文标题】无法在 OpenCart (PHP) 中禁用错误​​报告【英文标题】:Can't disable error reporting in OpenCart (PHP) 【发布时间】:2013-05-31 21:22:00 【问题描述】:

我似乎无法在 php 中禁用错误​​报告 - 我已经尝试了所有方法,但仍然显示“通知”错误。

我的 php.ini 有

display_errors = Off;
error_reporting = 0;

我的 .htaccess 有

php_value error_reporting 0

我的脚本有

ini_set('display_errors', 'Off');
ini_set('log_errors', 1);
ini_set('error_reporting', 0);
ini_set('display_startup_errors', 'Off');

php_info();

echo $my_undefined_var;

php_info() 输出确认 display_errors 和 error_reporting 确实为 off 和 0,但我仍然收到通知,

注意:未定义变量:my_undefined_var in /my/site/path/index.php?blahblah...

请注意,这是一个 OpenCart 网站(我的更改位于管理部分)。我已经尝试在 index.php 所在的目录中创建一个测试 php 脚本,这很好。

还有什么可以覆盖error_reporting(0) 的吗?

我已经对整个站点进行了一次 grep,以查找并禁用所有提及 error_reporting 和 display_errors 但无济于事。

【问题讨论】:

将 log_errors 设置为 1 有什么意义?你想记录什么? 除此之外,标题自然让我颤抖。 我真的不想记录任何东西...我在另一个论坛上读到,要禁用错误显示,您可能必须启用错误记录 - 对我来说没有意义,但我在我会尝试任何事情的地步。但如果我把它拿出来就没什么区别了 ***.com/questions/29986806/… 【参考方案1】:

对我有帮助: //error_reporting(E_ALL);

在文件startup.php中

【讨论】:

【参考方案2】:

OpenCart 中的真正方法。

 $this->config->set('config_error_display', 0);
 $this->processAction(); // it throws ugly warning

我已经在我的模块的控制器中进行了测试。 只是为了在您的代码之前关闭显示错误。 它只影响当前会话(甚至可能是当前页面)。 不影响数据库!

【讨论】:

【参考方案3】:

正如@colmde 已经指出的那样,OpenCart 使用自定义 error_handler。

您可以通过以下方式关闭错误显示,而无需进行任何代码编辑(尤其是 OpenCart 核心文件):

Admin->System->Settings->[edit your configured store]->Server->Display Errors

[编辑] 您可以通过对 OpenCart 数据库运行以下查询来执行相同操作:

update setting set `value`= 1 where `key` = 'config_error_display'

【讨论】:

为我工作:UPDATE 'TABLENAME'.'oc_setting' SET 'value' = '0' WHERE 'oc_setting'.'setting_id'=1057; 完全有效,原因是你在设置的时候选择使用oc_前缀作为OpenCart表,所以setting变成了oc_setting【参考方案4】:

OpenCart 仪表板中有一个设置允许您打开(或关闭)错误报告和日志记录。

    登录您的仪表板 在菜单中,转到“系统”并选择“设置” 在商店列表中,为您的商店点击“编辑” 点击“服务器”标签。 向下滚动,有两个设置: 一种。记录错误 - 根据需要进行设置 湾。显示错误 - 将此设置为“否”

【讨论】:

【参考方案5】:

你可以简单地使用

ini_set('display_errors', 0);

在系统/startup.php上

【讨论】:

我想做相反的事情:打开错误报告(结果很困难,但这有效!)【参考方案6】:

OpenCart 使用 set_error_handler() 函数,这会导致它覆盖 error_reporting(0)

删除这个解决了我的问题。

【讨论】:

以上是关于无法在 OpenCart (PHP) 中禁用错误​​报告的主要内容,如果未能解决你的问题,请参考以下文章

将 http 更改为 https 后,opencart 管理员无法正常工作

如果有错误,用户将不会继续结帐 opencart

php opencart crop调整大小#opencart

Opencart 和 PHP 的非常奇怪的会话问题

php 产品从csv导入Opencart的数据库。使用原生Opencart API

在Linux CentOS6系统中安装开源CMS程序OpenCart的教程