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

Can't disable error reporting in OpenCart (PHP)

提问人:komodosp 提问时间:6/5/2013 最后编辑:Charleskomodosp 更新时间:10/12/2018 访问量:35687

问:

我似乎无法在 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 /my/site/path/index.php?blahblah...

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

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

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

php opencart 错误报告 ini-set

评论

0赞 Your Common Sense 6/5/2013
将 log_errors 设置为 1 有什么意义?您要记录什么?
0赞 Your Common Sense 6/5/2013
除此之外,这个标题让我自然而然地颤抖。
0赞 komodosp 6/5/2013
我真的不想记录任何东西......我在另一个论坛上读到,要禁用错误显示,您可能需要启用错误日志记录 - 这对我来说没有意义,但我正处于尝试任何事情的地步。但如果我把它拿出来,那就没有区别了
0赞 5/1/2015
stackoverflow.com/questions/29986806/......

答:

8赞 komodosp 6/7/2013 #1

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

删除它解决了我的问题。

4赞 Abhinav bhardwaj 6/27/2013 #2

您可以简单地使用

ini_set('display_errors', 0);

在系统/startup.php

评论

0赞 Martijn 11/12/2015
我想做相反的事情:打开错误报告(结果证明这很困难,但这有效!
11赞 zergussino 8/8/2013 #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'

评论

1赞 Harkály Gergő 4/7/2016
为我工作:UPDATE 'TABLENAME'.'oc_setting' SET 'value' = '0' WHERE 'oc_setting'.'setting_id'=1057;
0赞 zergussino 4/8/2016
完全有效,原因是您在设置过程中选择对 OpenCart 表使用前缀,因此变成了 .oc_settingoc_setting
30赞 random_user_name 2/27/2014 #4

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

  1. 登录仪表板
  2. 在菜单中,转到“系统”并选择“设置”
  3. 在商店列表中,单击商店的“编辑”
  4. 单击“服务器”选项卡。
  5. 向下滚动,有两个设置:
    a. 日志错误 - 根据需要
    进行设置 b. 显示错误 - 将其设置为“否”
0赞 R. Mavlyanoff 4/19/2014 #5

OpenCart 中的真实方式。

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

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

0赞 Victor Bel 10/12/2018 #6

对我有帮助: error_reporting(E_ALL);

在文件startup.php