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

col*_*mde 5 php error-reporting ini-set opencart

我似乎无法在PHP中禁用错误​​报告 - 我已经尝试了所有内容,但仍然显示"通知"错误.

我的php.ini有

display_errors = Off;
error_reporting = 0;
Run Code Online (Sandbox Code Playgroud)

我的.htaccess了

php_value error_reporting 0
Run Code Online (Sandbox Code Playgroud)

我的剧本有

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;
Run Code Online (Sandbox Code Playgroud)

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

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

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

还有什么可以超越的error_reporting(0)吗?

我已经完成了整个站点的grep来查找和禁用error_reporting和display_errors的所有提及但无济于事.

ran*_*ame 26

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

  1. 登录仪表板
  2. 在菜单中,转到"系统"并选择"设置"
  3. 在商店列表中,单击商店的"编辑"
  4. 单击"服务器"选项卡.
  5. 向下滚动,有两个设置:
    a.记录错误 - 根据需要设置
    b.显示错误 - 将其设置为"否"


zer*_*ino 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'
Run Code Online (Sandbox Code Playgroud)


col*_*mde 8

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

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