[BUGFIX] Exclude E_STRICT from exceptionalErrors
authorMario Rimann <typo3-coding@rimann.org>
Mon, 2 Jul 2012 20:37:00 +0000 (22:37 +0200)
committerOliver Hader <oliver.hader@typo3.org>
Wed, 4 Jul 2012 08:49:12 +0000 (10:49 +0200)
From PHP 5.4, E_STRICT became part of E_ALL. This leads to lots of runtime
notice exceptions when using PHP 5.4. To avoid that, E_STRICT needs to be
excluded from error reporting.

Change-Id: I7ccd81a936384bc9417fcba79a59b9a0d255d229
Fixes: #35154
Releases: 6.0, 4.7, 4.6, 4.5
Reviewed-on: http://review.typo3.org/12528
Reviewed-by: Steffen Ritter
Tested-by: Steffen Ritter
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
index.php
t3lib/config_default.php
typo3/init.php
typo3/install/index.php
typo3/sysext/rtehtmlarea/mod3/browse_links.php
typo3/sysext/rtehtmlarea/mod4/select_image.php
typo3/sysext/rtehtmlarea/mod5/user.php
typo3/sysext/rtehtmlarea/mod6/parse_html.php
typo3/thumbs.php

index ee3b66a..66e7c86 100644 (file)
--- a/index.php
+++ b/index.php
 // Set error reporting
 // *******************************
 
-if (defined('E_DEPRECATED')) {
-       error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
-} else {
-       error_reporting(E_ALL ^ E_NOTICE);
-}
-
+error_reporting(E_ALL & ~(E_STRICT | E_NOTICE | E_DEPRECATED));
 
 // ******************
 // Constants defined
index 879d9f6..82604e3 100644 (file)
@@ -157,12 +157,12 @@ $TYPO3_CONF_VARS = array(
                'productionExceptionHandler'  => 't3lib_error_ProductionExceptionHandler',      // String: Classname to handle exceptions that might happen in the TYPO3-code. Leave empty to disable exception handling. Default: "t3lib_error_ProductionExceptionHandler". This exception handler displays a nice error message when something went wrong. The error message is logged to the configured logs. Note: The configured "productionExceptionHandler" is used if displayErrors is set to "0" or to "-1" and devIPmask doesn't match the users IP.
                'debugExceptionHandler' => 't3lib_error_DebugExceptionHandler',                         // String: Classname to handle exceptions that might happen in the TYPO3-code. Leave empty to disable exception handling. Default: "t3lib_error_DebugExceptionHandler". This exception handler displays the complete stack trace of any encountered exception. The error message and the stack trace  is logged to the configured logs. Note: The configured "debugExceptionHandler" is used if displayErrors is set to "1" and if displayErrors is "-1"  or "2" and the devIPmask matches the users IP.
                'errorHandler' => 't3lib_error_ErrorHandler',   // String: Classname to handle PHP errors. E.g.: t3lib_error_ErrorHandler. This class displays and logs all errors that are registered as "errorHandlerErrors" (<a href="#SYS-errorHandlerErrors">[SYS][errorHandlerErrors]</a>). Leave empty to disable error handling. Errors can be logged to syslog (see: <a href="#SYS-systemLog">[SYS][systemLog]</a>) to the installed developer log and to the "syslog" table. If an error is registered in "exceptionalErrors" ([SYS][exceptionalErrors]) it will be turned into an exception to be handled by the configured exceptionHandler.
-               'errorHandlerErrors'=> E_ALL ^ E_NOTICE,        // Integer: The E_* constant that will be handled by the errorhandler. Default is "E_ALL ^ E_NOTICE".
-               'exceptionalErrors' => E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_WARNING ^ E_USER_ERROR ^ E_USER_NOTICE ^ E_USER_WARNING,     // Integer: The E_* constant that will be handled as an exception by t3lib_error_ErrorHandler. Default is <tt>E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_WARNING ^ E_USER_ERROR ^ E_USER_NOTICE ^ E_USER_WARNING</tt> (20725) and "0" if <tt>displayErrors=0</tt> (see <a href="http://php.net/manual/en/errorfunc.constants.php" target="_blank">PHP documentation</a>).
+               'errorHandlerErrors' => E_ALL & ~(E_STRICT | E_NOTICE), // Integer: The E_* constant that will be handled by the errorhandler. Default is "E_ALL ^ E_NOTICE".
+               'exceptionalErrors' => E_ALL & ~(E_STRICT | E_NOTICE | E_DEPRECATED | E_WARNING | E_USER_ERROR | E_USER_NOTICE | E_USER_WARNING),       // Integer: The E_* constant that will be handled as an exception by t3lib_error_ErrorHandler. Default is <tt>E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_WARNING ^ E_USER_ERROR ^ E_USER_NOTICE ^ E_USER_WARNING</tt> (20725) and "0" if <tt>displayErrors=0</tt> (see <a href="http://php.net/manual/en/errorfunc.constants.php" target="_blank">PHP documentation</a>).
                'enable_errorDLOG' => 0,                                // Boolean: If set, errors are written to the developer log (requires an installed *devlog* extension).
                'enable_exceptionDLOG' => 0,                    // Boolean: If set, exceptions are written to the developer log (requires an installed *devlog* extension).
-               'syslogErrorReporting' => E_ALL ^ E_NOTICE,     // Integer: Configures which PHP errors should be logged to the configured syslogs (see: [SYS][systemLog]). If set to "0" no PHP errors are logged to the syslog. Default is "E_ALL ^ E_NOTICE" (6135).
-               'belogErrorReporting' => E_ALL ^ E_NOTICE,      // Integer: Configures which PHP errors should be logged to the "syslog" table (extension: belog). If set to "0" no PHP errors are logged to the sys_log table. Default is "E_ALL ^ E_NOTICE" (6135).
+               'syslogErrorReporting' => E_ALL & ~(E_STRICT | E_NOTICE),       // Integer: Configures which PHP errors should be logged to the configured syslogs (see: [SYS][systemLog]). If set to "0" no PHP errors are logged to the syslog. Default is "E_ALL ^ E_NOTICE" (6135).
+               'belogErrorReporting' => E_ALL & ~(E_STRICT | E_NOTICE),        // Integer: Configures which PHP errors should be logged to the "syslog" table (extension: belog). If set to "0" no PHP errors are logged to the sys_log table. Default is "E_ALL ^ E_NOTICE" (6135).
                'locallangXMLOverride' => array(),                              // For extension/overriding of the arrays in 'locallang' files in frontend and backend. See 'Inside TYPO3' for more information.
                'generateApacheHtaccess' => 1,                  // Boolean: TYPO3 can create <em>.htaccess</em> files which are used by Apache Webserver. They are useful for access protection or performance improvements. Currently <em>.htaccess</em> files in the following directories are created, if they do not exist: <ul><li>typo3temp/compressor/</li></ul>You want to disable this feature, if you are not running Apache or want to use own rulesets.
        ),
index 85de722..426e9bb 100644 (file)
@@ -66,11 +66,7 @@ if (version_compare(phpversion(), '5.2', '<'))       die ('TYPO3 requires PHP 5.2.0 or
 // *******************************
 // Set error reporting
 // *******************************
-if (defined('E_DEPRECATED')) {
-       error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
-} else {
-       error_reporting(E_ALL ^ E_NOTICE);
-}
+error_reporting(E_ALL & ~(E_STRICT | E_NOTICE | E_DEPRECATED));
 
 // *******************************
 // Prevent any unwanted output that may corrupt AJAX/compression. Note: this does
index 06eb32f..ff1080d 100755 (executable)
 // Insert some security here, if you don't trust the Install Tool Password:
 // **************************************************************************
 
-if (defined('E_DEPRECATED')) {
-       error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
-} else {
-       error_reporting(E_ALL ^ E_NOTICE);
-}
+error_reporting(E_ALL & ~(E_STRICT | E_NOTICE | E_DEPRECATED));
 
 $PATH_thisScript = str_replace('//', '/', str_replace('\\', '/',
        (PHP_SAPI == 'fpm-fcgi' || PHP_SAPI == 'cgi' || PHP_SAPI == 'isapi' || PHP_SAPI == 'cgi-fcgi') &&
index 80a4080..e988d56 100644 (file)
@@ -38,7 +38,7 @@
  * @author     Stanislas Rolland <typo3(arobas)sjbr.ca>
  */
 
-error_reporting (E_ALL ^ E_NOTICE);
+error_reporting(E_ALL & ~(E_STRICT | E_NOTICE));
 unset($MCONF);
 require('conf.php');
 require($BACK_PATH.'init.php');
index 816be37..dcaf45b 100644 (file)
@@ -34,7 +34,7 @@
  * $Id$  *
  */
 
-error_reporting (E_ALL ^ E_NOTICE);
+error_reporting(E_ALL & ~(E_STRICT | E_NOTICE));
 unset($MCONF);
 require('conf.php');
 require($BACK_PATH.'init.php');
index c8058f1..7a802ff 100644 (file)
@@ -34,7 +34,7 @@
  * $Id$  *
  */
 
-error_reporting (E_ALL ^ E_NOTICE);
+error_reporting(E_ALL & ~(E_STRICT | E_NOTICE));
 unset($MCONF);
 require('conf.php');
 require($BACK_PATH.'init.php');
index 03cb0b0..f903b3a 100644 (file)
@@ -32,7 +32,7 @@
  * $Id$  *
  */
 
-error_reporting (E_ALL ^ E_NOTICE);
+error_reporting(E_ALL & ~(E_STRICT | E_NOTICE));
 unset($MCONF);
 require ('conf.php');
 require ($BACK_PATH.'init.php');
index 32f53c7..81fefa9 100644 (file)
 // *******************************
 // Set error reporting
 // *******************************
-if (defined('E_DEPRECATED')) {
-       error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
-} else {
-       error_reporting(E_ALL ^ E_NOTICE);
-}
 
+error_reporting(E_ALL & ~(E_STRICT | E_NOTICE | E_DEPRECATED));
 
 define('PATH_thisScript', str_replace('//', '/', str_replace('\\', '/',
        (PHP_SAPI == 'fpm-fcgi' || PHP_SAPI == 'cgi' || PHP_SAPI == 'isapi' || PHP_SAPI == 'cgi-fcgi') &&