Bonjour,

Je souhaite mettre un gestionnaire d'erreurs personnalisé en place, et je bloque sur certains points...

Par soucis de simplicité, j'ai simplifié mon code, qui normalement ajoute les données dans une base (cette partie fonctionne).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php  
function GestionErreur($code, $msg, $file, $line) 
{	
$heureBug = date("h:i:s");
$urlbug = $_SERVER['SCRIPT_URI'];
 
$verifErreur = mysql_query('SELECT id FROM GestionErreurs WHERE lien="'.$urlbug.'" AND fichier="'.$file.'" AND ligne="'.$line.'"');
 
if($errno == 'E_NOTICE' || $errno == 'E_USER_NOTICE')
{ 
$Niveau = 'Basse'; 
echo"basse";
}
if($errno == 'E_ERROR' || $errno == 'E_CORE_ERROR' || $errno == 'E_COMPILE_ERROR' || $errno == 'E_USER_ERROR')
{ 
$Niveau = 'Haute'; 
echo"haut";
}
if($errno == 'E_WARNING' || $errno == 'E_PARSE' || $errno == 'E_CORE_WARNING' || $errno == 'E_COMPILE_WARNING' || $errno == 'E_USER_WARNING')
{ 
$Niveau = 'Moyenne'; 
echo"moyenne"; 
}
if($Niveau == '')
{ 
$Niveau = 'Inconnu'; 
echo"inconnu"; 
}
 
echo'Priorité:'.$Niveau;
 
    // Arret execution du script
    die();
}
 
// On définit notre gestionnaire d'erreur personnalisé
set_error_handler('GestionErreur');
?>
Le problème rencontré est celui de définir le niveau d'alerte pour le bug.

Par exemple, j'ai généré volontairement une erreur E_USER_NOTICE:
"Undefined index:nomSiteJeux", ou indiqué une variable n'existant pas..et cela m'indique tout le temps: Priorité Inconnu! ...Alors qu'a priori ce serait "Basse".
De plus, si j'oubli par exemple un point virgule, cela me renvoie:
Parse error: syntax error, unexpected T_VARIABLE in /home/www/503c69a9a240068c8059ec652aefc53b/web/liste-des-jeux.php on line 115
Pourtant en début de page j'ai mis error_reporting(0); ! Pourquoi me renvoie t-il l'erreur? S'agit t'il d'un autre type d'erreur?

Merci