From: Tomas K. <to...@us...> - 2005-07-31 12:13:42
|
Update of /cvsroot/squirrelmail/squirrelmail/class In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24078 Modified Files: error.class.php Log Message: add php5 E_STRICT support and disable logging of disabled error messages. it is possible that switch($iErrNo) should be replaced with if control structures in order to follow php error_reporting setting. Index: error.class.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/class/error.class.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- error.class.php 28 Jul 2005 21:03:00 -0000 1.1 +++ error.class.php 31 Jul 2005 12:13:30 -0000 1.2 @@ -14,6 +14,11 @@ define('SQM_NOTICE',0); define('SQM_WARNING',1); define('SQM_ERROR',2); +define('SQM_STRICT',3); +// php5 E_STRICT constant (compatibility with php4) +if (! defined('E_STRICT')) define('E_STRICT',2048); +// Set docref_root (fixes URLs that link to php manual) +if (ini_get('docref_root')=='') ini_set('docref_root','http://www.php.net/'); /** * Error Handler class @@ -62,11 +67,21 @@ ); $iType = NULL; $aErrorCategory = array(); + + /** + * Check error_reporting value before logging error. + * Don't log errors that are disabled by @ (error_reporting = 0). Some SquirrelMail scripts + * (sq_mb_list_encodings(), ldap function calls in functions/abook_ldap_server.php) + * handle errors themselves and @ is used to disable generic php error messages. + */ + if ((bool) ini_get('error_reporting')) { /* * The following errors cannot be handled by a user defined error handler: * E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING */ switch ($iErrNo) { + case E_STRICT: + $iType = (is_null($iType)) ? SQM_STRICT : $iType; case E_NOTICE: $iType = (is_null($iType)) ? SQM_NOTICE : $iType; case E_WARNING: @@ -130,6 +145,7 @@ break; default: break; } + $aErrorTpl = array( 'type' => $iType, 'category' => $aErrorCategory, @@ -140,6 +156,8 @@ // Add the notice/warning/error to the existing list of notices/warnings $this->aErrors[] = $aErrorTpl; $this->Template->assign('aErrors',$this->aErrors); + } + // Show the error immediate in case of fatal errors if ($iType == SQM_ERROR) { $this->DisplayErrors(); |