Error handling AJAX调用了当error\u reporting=off时显示错误的文件

Error handling AJAX调用了当error\u reporting=off时显示错误的文件,error-handling,php,error-reporting,Error Handling,Php,Error Reporting,在php.ini中,我的错误显示设置如下: error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED display_errors = Off 这适用于任何正常调用的文件,但是,如果使用jQuery/AJAX调用文件,我会收到以下错误: 严格标准:不应静态调用非静态方法XML_Util::replaceEntities(),假设第664行/usr/lib/php/XML/Util.php中不兼容的上下文中有$this 严格标准:不

php.ini
中,我的错误显示设置如下:

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
display_errors  = Off
这适用于任何正常调用的文件,但是,如果使用jQuery/AJAX调用文件,我会收到以下错误:

严格标准:不应静态调用非静态方法XML_Util::replaceEntities(),假设第664行/usr/lib/php/XML/Util.php中不兼容的上下文中有$this

严格标准:不应静态调用非静态方法XML_Util::createTagFromArray(),假设$this来自第1231行/home/site/public_html/site/paypal/lib/Serializer/Serializer.php中不兼容的上下文

严格标准:不应静态调用非静态方法XML_Util::attributesToString(),假设第652行/usr/lib/php/XML/Util.php中不兼容的上下文中有$this

可以假设,这破坏了我网站的某些部分,我该如何修复

我正在运行PHP5.4.10


正在使用Jquery函数调用文件:
$。get
$。post

您使用的代码/库正在触发严格的标准错误/通知/警告

为其调用的相关错误报告常量为

由于PHP5.4
E_STRICT
E_ALL
的一部分,因此如果您按照以下方式进行配置,也必须将其删除:

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
                                                    ^^^^^^^^^^^
因此,如果您将
E_STRICT
从生产错误设置中排除,则这些严格标准错误不应再被记录,这可能与您在早期PHP5.3版本中遇到的错误类似

此外,您应联系库的供应商,并要求使代码
E\u严格
兼容。这是一个很好的实践,也向您展示了一些代码具有一定的质量

对于您的开发,您应该同样使您的代码
E_STRICT
兼容,修复导致严格标准错误的任何地方

同样适用于
E_NOTICE
E_DEPRECATED
,您应该在开发环境中启用这些消息,并修复所有报告的问题。这可以避免您太容易地得到越来越多的bug

php.ini

;;;;;;;;;;;;;;;;;;;
; Quick Reference ;
;;;;;;;;;;;;;;;;;;;
; The following are all the settings which are different in either the production
; or development versions of the INIs with respect to PHP's default behavior.
; Please see the actual settings later in the document for more details as to why
; we recommend these changes in PHP's behavior.

...

; error_reporting
;   Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
;   Development Value: E_ALL
;   Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
从您在问题中提供的信息来看,您看到错误消息输出而不是记录的原因并不清楚。这可能有多种原因

  • 最直接的原因是您没有正确地禁用错误显示,或者在运行时再次启用它(该设置也可以在PHP代码中更改)
  • 错误显示已禁用,但仍有一个错误显示
因此,除了错误级别设置之外,您的问题的这一部分还需要更多的故障排除,以找出显示错误消息的原因


另见:

  • (2010年5月17日;由rtacconi出版)

您使用的代码/库正在触发严格标准错误/通知/警告

为其调用的相关错误报告常量为

由于PHP5.4
E_STRICT
E_ALL
的一部分,因此如果您按照以下方式进行配置,也必须将其删除:

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
                                                    ^^^^^^^^^^^
因此,如果您将
E_STRICT
从生产错误设置中排除,则这些严格标准错误不应再被记录,这可能与您在早期PHP5.3版本中遇到的错误类似

此外,您应联系库的供应商,并要求使代码
E\u严格
兼容。这是一个很好的实践,也向您展示了一些代码具有一定的质量

对于您的开发,您应该同样使您的代码
E_STRICT
兼容,修复导致严格标准错误的任何地方

同样适用于
E_NOTICE
E_DEPRECATED
,您应该在开发环境中启用这些消息,并修复所有报告的问题。这可以避免您太容易地得到越来越多的bug

php.ini

;;;;;;;;;;;;;;;;;;;
; Quick Reference ;
;;;;;;;;;;;;;;;;;;;
; The following are all the settings which are different in either the production
; or development versions of the INIs with respect to PHP's default behavior.
; Please see the actual settings later in the document for more details as to why
; we recommend these changes in PHP's behavior.

...

; error_reporting
;   Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
;   Development Value: E_ALL
;   Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
从您在问题中提供的信息来看,您看到错误消息输出而不是记录的原因并不清楚。这可能有多种原因

  • 最直接的原因是您没有正确地禁用错误显示,或者在运行时再次启用它(该设置也可以在PHP代码中更改)
  • 错误显示已禁用,但仍有一个错误显示
因此,除了错误级别设置之外,您的问题的这一部分还需要更多的故障排除,以找出显示错误消息的原因


另见:

  • (2010年5月17日;由rtacconi出版)

显示错误=关闭的位置是从哪里设置的?如果它不在
ini
中,它应该在所有相关的入口点(或在前端控制器中),您是否在正确的php.ini中设置了它?检查
phpinfo()
php-i
的输出以查看调用的是哪个php.ini。但为什么要禁用
E_NOTICE
?如果您收到通知,通常意味着您的代码不好,应该修复…@ThiefMaster这是针对生产站点的,对于开发/测试站点,错误是打开的。即使在生产中,您也应该启用E_通知-仅当display_errors=off且错误进入syslog时。从哪里设置
display_errors=off
?如果它不在
ini
中,它应该在所有相关的入口点(或在前端控制器中),您是否在正确的php.ini中设置了它?检查
phpinfo()
php-i
的输出以查看调用的是哪个php.ini。但为什么要禁用
E_NOTICE
?如果您收到通知,通常意味着您的代码不好,应该修复…@ThiefMaster这是针对生产站点的,dev/te会出现错误