我似乎无法在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/site/path/index.php?blahblah中的my_undefined_var ...
请注意,这是一个OpenCart网站(我的更改位于“管理”部分)。我尝试在index.php所在的目录中创建一个测试php脚本,没关系。
还有什么可以覆盖error_reporting(0)
吗?
我已经完成整个网站的grep来查找和禁用error_reporting和display_errors的所有提及,但无济于事。
答案 0 :(得分:25)
OpenCart仪表板中有一个设置,允许您打开(或关闭)错误报告和记录。
答案 1 :(得分: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'
答案 2 :(得分:8)
OpenCart使用set_error_handler()
函数使其覆盖error_reporting(0)
。
删除此问题解决了我的问题。
答案 3 :(得分:4)
你可以简单地使用
ini_set('display_errors', 0);
on system / startup.php
答案 4 :(得分:0)
OpenCart中的真实方式。
$this->config->set('config_error_display', 0);
$this->processAction(); // it throws ugly warning
我已经在我的模块的 控制器 中进行了测试。 只是为了在代码之前关闭显示错误。 它仅影响当前会话(可能甚至是当前页面)。 它不会影响数据库!
答案 5 :(得分:0)
对我有帮助: // error_reporting(E_ALL);
在文件startup.php中