Ce code enregistre les erreurs PHP rencontrées dans une base de donnée, il stoppe le script si ces erreurs sont trop importante, et enregistre la date où l'erreur s'est produite.
Ce code est une variante du code de Samiby. Ayant trouvé le script très interressant je m'en suis inspiré pour en faire une petite variante.
Source / Exemple :
<?php
function erreurphp( $errno , $errmsg , $errfichier , $errligne , $errcontext ){
$date = date( 'd/m/Y H:i:s' );
switch( $errno ){
//gestion des erreurs importantes
case 1:
case 16:
case 64:
case 256:
//Enregistrement de l'erreur
ecriture_base( $date , $errno , $errmsg , $errfichier , $errligne , 0 );
//arret du script
die( 'Erreur : Rééssayez plus tard.' );
//Gestion des erreurs moyennement importantes
case 2:
case 4:
case 32:
case 128:
case 512:
//Enregistrement de l'erreur
ecriture_base( $date , $errno , $errmsg , $errfichier , $errligne , 1 );
break;
//Sinon, si c'est juste un 'Notice' (avertissement)
case 8:
case 1024:
ecriture_base( $date , $errno , $errmsg , $errfichier , $errligne , 2 );
break;
}
}
//toutes les erreurs doivent être reportées
error_reporting( E_ALL );
//Quand on rencontre une erreur, on appelle la fonction erreurphp()
$error_handler = set_error_handler("erreurphp");
//La fonction qui écrit dans le fichier
function ecriture_base( $date , $errno , $errmsg , $errfichier, $errligne, $type_erreur){
//Connexion à la base de donnée
include ("config/sql.inc.php");
$connexion_db = mysql_connect("$host","$login","$pass");
mysql_select_db("$bdd","$connexion_db");
//Enregistrement des données en base
$sql = "INSERT INTO $table_erreur (date,errno,errmsg,errfichier,errligne,type_erreur) VALUES('$date','$errno,'$errmsg','$errfichier','$errligne','$type_erreur')";
mysql_query($sql);
//fermeture connexion à la base de donnée
mysql_close($connexion_db);
}
?>
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.