voila tout le probleme, je ne voulais pas etre trop precis pour ne pas influencer vos reponses et surtout pour voir si la direction est la bonne.
comme disait l'autre zigoto (matrix

) :
"il y a une difference entre connaitre le chemin et arpenter le chemin"
pour infos le set_error_handler() ne sert que pour les erreurs que je n'ai pas prevu, les autres sont gérés avec des conditions sur les retours des methodes/fonctions ...etc
voici un bout de code qui te permettra de comprendre un peu mieux comment elle fonctionne.
la methode est un classique de ce que tu trouves dans un classe MySQL et gere le changement de base de données :
/**
* Selection de la base de données MySQL
*
* @param String $stBd La base de données
*
* @return Boolean
*/
public function myBd($stBd){
@mysqli_select_db($this->rsPtMy, $stBd);
if( @mysqli_errno($this->rsPtMy) ){
return $this->logHandler(
"class Mysql->myBd() :<br />Erreur lors de la selection de la base de données :<br />".@mysqli_error($this->rsPtMy),
LOG_LV_FATAL
);
}
$this->logHandler(
"class Mysql->myBd() :<br />Selection de la base de données :<br />".$stBd,
LOG_LV_NOTICE
);
$this->stBdMy = $stBd;
return true;
}
voici ce qu'il y a dans le fichier config pour gerer les erreurs des applis :
// ---------------------------------------------------------------------
// ------------------- PARTIE A NE PAS MODIFIER ----------------------
// ---------------------------------------------------------------------
error_reporting(E_ALL);
set_time_limit(6000);
/**
* Log : Actions on error
*/
define('LOG_DISPLAY_SUCCESS', 1);
define('LOG_DISPLAY_NOTICE', 2);
define('LOG_DISPLAY_WARNING', 4);
define('LOG_DISPLAY_FATAL', 8);
define('LOG_WRITE_SUCCESS', 16);
define('LOG_WRITE_NOTICE', 32);
define('LOG_WRITE_WARNING', 64);
define('LOG_WRITE_FATAL', 128);
define('LOG_HALT_ON_FATAL', 256);
/**
* Log : formating data
*/
define('LOG_DISPLAY_TEXT', 0);
define('LOG_DISPLAY_HTML', 1);
define('LOG_DISPLAY_FLASH', 2);
define('LOG_DISPLAY_XML', 3);
/**
* Log : levels for log to file/display (Level for Log::logHandler())
*/
define('LOG_LV_SUCCESS', 1);
define('LOG_LV_NOTICE', 2);
define('LOG_LV_WARNING', 4);
define('LOG_LV_FATAL', 8);
$GLOBALS['tbLog'] = array(
LOG_LV_SUCCESS => array('type'=>'SUCCESS', 'color'=>'green'), // 0
LOG_LV_NOTICE => array('type'=>'NOTICE', 'color'=>'steelblue'), // 1
LOG_LV_WARNING => array('type'=>'WARNING', 'color'=>'#FF9900'), // 2
LOG_LV_FATAL => array('type'=>'FATAL', 'color'=>'red') // 3
);
// ---------------------------------------------------------------------
// ------------ CONFIGURATION DE LA GESTION DES ERREURS -----------
// ---------------------------------------------------------------------
/*
* Level for handle the error
*
* LOG_DISPLAY_SUCCESS = Display SUCCESS to screen
* LOG_DISPLAY_NOTICE = Display NOTICE to screen
* LOG_DISPLAY_WARNING = Display WARNING to screen
* LOG_DISPLAY_FATAL = Display FATAL Error to screen
*
* LOG_WRITE_SUCCESS = Write SUCCESS to log file
* LOG_WRITE_NOTICE = Write NOTICE to log file
* LOG_WRITE_WARNING = Write WARNING to log file
* LOG_WRITE_FATAL = Write FATAL Error to log file
*
* LOG_HALT_ON_FATAL = Halt script on FATAL Error
*
* Combine differents choices
*/
define('LOG_ERROR_LEVEL',
LOG_DISPLAY_SUCCESS +
//LOG_DISPLAY_NOTICE +
//LOG_DISPLAY_WARNING +
LOG_DISPLAY_FATAL +
LOG_WRITE_SUCCESS +
//LOG_WRITE_NOTICE +
//LOG_WRITE_WARNING +
LOG_WRITE_FATAL +
LOG_HALT_ON_FATAL
);
/**
* Format for displaying Log
*
* LOG_DISPLAY_TEXT = return text Log
* LOG_DISPLAY_HTML = return text Log embed in HTML
* LOG_DISPLAY_FLASH = return text Log URL-encoded (for Flash player)
* LOG_DISPLAY_XML = return text Log with XML TAG
*
* One choice
*/
define('LOG_FORMAT_TO_DISPLAY', LOG_DISPLAY_HTML);