PHP error_reporting与display_errors

时间:2014-05-02 20:39:18

标签: php error-handling

error_reporting(0)ini_set('display_errors', 0)相同吗?如果没有,有什么区别?

我也对此代码的安全方面感兴趣?我可以实现' so malicious users can't probe'这个?

1 个答案:

答案 0 :(得分:25)

它们不一样,但在使用中可能会有相同的结果。

  1. error_reporting是报告级别,无通过ALL。这决定了报告的错误类型(E_NOTICE,E_WARNING,E_ALL等)。

  2. display_errors是否显示从1报告的错误(输出到浏览器,CLI等...)。

  3. 如果设置error_reporting(E_ALL)ini_set('display_errors', '0'),您仍然可以获取日志文件中报告但未显示的所有错误。

    使用error_reporting(0)您不会显示任何错误或在日志中显示display_errors的值并不重要。

    display_errors应该在生产应用程序中关闭,最好在php.ini中,以便不显示文件路径,数据库名称和用户名等信息。发送到日志的错误报告是有益的,不应该是安全问题。