begin process at 2010 03 21 16:42:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > GESTION DES ERREURS (ENREGISTREMENT EN BASE DE DONNÉE)

GESTION DES ERREURS (ENREGISTREMENT EN BASE DE DONNÉE)


 Information sur la source

Note :
8,5 / 10 - par 2 personnes
8,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Niveau :Initié Date de création :18/10/2004 Vu :2 003

Auteur : dezossor

Ecrire un message privé
Site perso
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

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

  • <?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&eacute;&eacute;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);
  • }
  • ?>
<?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&eacute;&eacute;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);
}

?>



 Sources de la même categorie

Source avec une capture PAGINATION EN PHP par Orangina
Source avec Zip POO - DEBUGGER par DiGhan
Source avec Zip CRAWLER DE SITE EN PHP par Mcjo
DÉCOUPAGE D'UN TEXTE EN FONCTION DES SAUTS DE LIGNES par biloubil
RÉCUPÉRER LE CHEMIN RELATIF D'UN OBJET PAR RAPPORT À LA RACI... par FredPsy

Commentaires et avis

Commentaire de Magidev le 24/10/2004 00:26:54

C'est un bon principe, surtout pour récuperer automatiquement les erreurs générées par le code (mais bon il ne devrait pas avoir d'erreur dans le code lol)

8/10

Commentaire de windu le 28/10/2004 21:32:01

Oauis c'est pas mal du tout... mais il y a un défaut énorme dans ton code (ou plutot ton raisonnement): si c'est la connexion à la base de données qui génère une erreur, tu fais comment pour enregistrer ton erreur????
looooooooooool je sais que je cherche la petite bête, pour me faire pardonner je vais te mettre 9/10

Commentaire de mfaraday le 01/11/2004 17:51:15

le mieux serait peut-être de faire le stockage dans une base de données + dans un fichier. comme ça si c dans la base le problème, c quand même stocké dans le fichier.

On pourrait même envoyer un mel à l'administrateur en plus...

Florian

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,312 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales