Bonjour,
Voila, j'ai ce script de gestion d'erreurs et il y a un truc que je comprend pas :
Code :
- <?php
- class errorHandler
- {
- function __construct()
- {
- set_error_handler(array($this,'getError'),E_USER_ERROR);
- }
- function getError($errno,$errstr,$errfile,$errline) // Pour les grosses erreurs
- {
- error_log($errstr.' in '.$errfile.':'.$errline);
- header('HTTP/1.0 500 Internal Server Error');
- die();
- }
- }
- ?>
|
Et appellé par
Code :
- require('error.class.php');
- $error = new errorHandler();
- trigger_error("test",E_USER_ERROR);
|
Et le gestionnair d'erreur que j'ai defini n'est pas utilisé ... c'est le gestionnaire par default de PHP qui se lance... On se demande si le probleme vient du fait que le constructeur "utilise" une metode pas encore lue par le parseur PHP (en inversant l'ordre du constructeur et de la metode dans le fichier php c'est toujours pareil). Est-ce que qqn a une idée de comment resoudre le probleme?
Le pire c'est que si on l'appelle par
Code :
- require('error.class.php');
- $error = new errorHandler();
- set_error_handler(array($error,'getError'),E_USER_ERROR);
- trigger_error("test",E_USER_ERROR);
|
Ca marche tiptop ....
Merci d'avance
Esox
P.S: Dans le htaccess au meme niveau que le script on a mis un ErrorDocument 500 ./erreur_output.html mais il ne se lance pas quand le header envoie l'erreur 500 ... Aurais-je loupé un episode?
---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait