提问人:komodosp 提问时间:6/5/2013 最后编辑:Charleskomodosp 更新时间:10/12/2018 访问量:35687
无法在 OpenCart (PHP) 中禁用错误报告
Can't disable error reporting in OpenCart (PHP)
问:
我似乎无法在 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但无济于事。
答:
OpenCart 使用导致它覆盖 .set_error_handler()
error_reporting(0)
删除它解决了我的问题。
您可以简单地使用
ini_set('display_errors', 0);
在系统/startup.php
评论
正如@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_
setting
oc_setting
OpenCart 仪表板中有一个设置,允许您打开(或关闭)错误报告和日志记录。
- 登录仪表板
- 在菜单中,转到“系统”并选择“设置”
- 在商店列表中,单击商店的“编辑”
- 单击“服务器”选项卡。
- 向下滚动,有两个设置:
a. 日志错误 - 根据需要
进行设置 b. 显示错误 - 将其设置为“否”
OpenCart 中的真实方式。
$this->config->set('config_error_display', 0);
$this->processAction(); // it throws ugly warning
我已经在模块的控制器中进行了测试。 只是为了关闭在代码之前显示错误。 它只影响当前会话(甚至可能影响当前页面)。 它不会影响数据库!
对我有帮助: error_reporting(E_ALL);
在文件startup.php
上一个:PHP 错误报告不会关闭
评论