为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过php.ini配置过滤掉通知

如何通过php.ini配置过滤掉通知

PHP
拉丁的传说 2021-06-15 13:01:18
最近我们将 webapp 的 PHP 版本从版本 5.[something] 迁移到 7.2,并且我们的 apache2php.ini被设置为避免在服务器和浏览器中记录通知。有人告诉我,在迁移之前,设置运行良好,但现在到处都是通知。这是设置:error_reporting = E_ALL & ~E_NOTICE我试过了error_reporting = E_ALL ^ (E_DEPRECATED & E_NOTICE)也是,无济于事。没有.htaccess覆盖设置的文件,当我将error_reporting变量设置为不同的值时,应用程序报告 error_reporting 状态发生变化,只是当我指定我不想要 E_NOTICE 时,设置不起作用。这是处理错误的配置片段:display_errors = On;error_reporting = E_ALL ^ E_DEPRECATED;error_reporting = E_ALL ^ (E_DEPRECATED & E_NOTICE);error_reporting = E_COMPILE_ERROR | E_ERROR | E_CORE_ERRORerror_reporting = E_ALL & ~E_NOTICE;E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE我们希望避免在服务器和浏览器中记录通知。关于可能出错的任何想法?
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

我们设法解决了这个问题,我们的一个库(PEAR 的 cache-lite)有一行代码,可以在文件/usr/share/php/Cache/Lite.php的第 25行以编程方式设置日志记录代码,这里是

error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT);

我们将其注释掉,现在一切正常。谢谢大家!


查看完整回答
反对 回复 2021-06-19
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

我建议您不要隐藏,而是notices尝试编写php不生成notices. 隐藏此信息不是一种好的编程技术,并且经常会留下未解决的漏洞或错误。

无论如何,您的问题可以通过放入您的script(开始时)解决:

error_reporting(E_ALL ^ E_NOTICE);

这将关闭notices...

我建议你阅读手册

要在您的php.iniphp.ini不是Apache configuration文件,而是php configuration文件)中设置此值,您可以使用(因为您已经在使用):

error_reporting = E_ALL & ~E_NOTICE

并且不要忘记改变

display_errors = On

display_errors = Off

在您的 中php.ini,不要忘记停止Apache并再次重新启动以查看更改...

See this thread and this thread

Hope this helps.


查看完整回答
反对 回复 2021-06-19
  • 2 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信