par
matt_m » 11 juil. 2005, 23:41
sinon ce que tu peux faire c'est si tu es sous php5 c'est changer le gestionnaire d'erreurs
tu as un fichier error_handler.php
/**
* redefinition du gestionnaire d'erreurs
*
* @param int $errno : le code d'erreur
* @param string $errstr : le message d'erreur
* @param string $errfile : le fichier d'erreur source
* @param string $errline : la ligne d'erreur dans ce fichier
* @return void
*/
function ErrorHandler($errno, $errstr, $errfile, $errline) {
// tu loggues ton erreur avec ta methode log
log($errstr);
switch ($errno) {
case E_CORE_ERROR :
case E_CORE_WARNING :
case E_COMPILE_ERROR :
case E_COMPILE_WARNING :
case E_PARSE :
case E_USER_WARNING :
case E_USER_NOTICE :
{
break;
}
case E_USER_ERROR :
default :
{
echo "Une erreur technique est survenue<br/>";
echo "veuillez nous excuser pour ce désagrement<br/>";
exit(1);
}
}
}
// tu redefinis ton gestionnaire d'erreur
set_error_handler("ErrorHandler");
et dans ton fichier realisation ta connexion tu fais
// inclusion du gestionnaire d'erreur
include_once 'error_handler.php';
if (!$db = mysql_connect($host, $login, $pwd)) {
// va terminer ton programme
trigger_error('cannot connect to db', E_USER_ERROR);
}
if (!mysql_db_query ( $tadb, 'select * from matable',$db)) {
// logguera seulement ton erreur
trigger_error('query throw error', E_USER_WARNING);
}
// la suite de ton programme
...
cette methode va permettre d'implementer le meme gestionnaire d'erreur, et de te permettre de moduler la reponse en fonction du niveau d'erreur que tu leves
sinon ce que tu peux faire c'est si tu es sous php5 c'est changer le gestionnaire d'erreurs
tu as un fichier error_handler.php
[php]
/**
* redefinition du gestionnaire d'erreurs
*
* @param int $errno : le code d'erreur
* @param string $errstr : le message d'erreur
* @param string $errfile : le fichier d'erreur source
* @param string $errline : la ligne d'erreur dans ce fichier
* @return void
*/
function ErrorHandler($errno, $errstr, $errfile, $errline) {
// tu loggues ton erreur avec ta methode log
log($errstr);
switch ($errno) {
case E_CORE_ERROR :
case E_CORE_WARNING :
case E_COMPILE_ERROR :
case E_COMPILE_WARNING :
case E_PARSE :
case E_USER_WARNING :
case E_USER_NOTICE :
{
break;
}
case E_USER_ERROR :
default :
{
echo "Une erreur technique est survenue<br/>";
echo "veuillez nous excuser pour ce désagrement<br/>";
exit(1);
}
}
}
// tu redefinis ton gestionnaire d'erreur
set_error_handler("ErrorHandler");
[/php]
et dans ton fichier realisation ta connexion tu fais
[php]
// inclusion du gestionnaire d'erreur
include_once 'error_handler.php';
if (!$db = mysql_connect($host, $login, $pwd)) {
// va terminer ton programme
trigger_error('cannot connect to db', E_USER_ERROR);
}
if (!mysql_db_query ( $tadb, 'select * from matable',$db)) {
// logguera seulement ton erreur
trigger_error('query throw error', E_USER_WARNING);
}
// la suite de ton programme
...
[/php]
cette methode va permettre d'implementer le meme gestionnaire d'erreur, et de te permettre de moduler la reponse en fonction du niveau d'erreur que tu leves