5

我似乎无法在 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 确实是关闭和 0,但我仍然收到通知,

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

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

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

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

4

6 回答 6

29

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

  1. 登录您的仪表板
  2. 在菜单中,转到“系统”并选择“设置”
  3. 在商店列表中,单击您商店的“编辑”
  4. 单击“服务器”选项卡。
  5. 向下滚动,有两个设置
    :记录错误 - 根据需要设置
    b。显示错误 - 将此设置为“否”
于 2014-02-26T20:59:35.937 回答
11

正如@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'
于 2013-08-08T05:57:10.410 回答
8

OpenCart 使用set_error_handler()导致它覆盖error_reporting(0).

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

于 2013-06-06T16:04:54.040 回答
4

你可以简单地使用

ini_set('display_errors', 0);

在系统/startup.php

于 2013-06-27T07:08:04.140 回答
0

OpenCart 中的真正方式。

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

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

于 2014-04-19T13:04:05.220 回答
0

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

在文件 startup.php

于 2018-10-12T06:06:34.820 回答