Menu

Gestion des erreurs personnalisé avec PHP [Fermé]

nikizim 67 Messages postés jeudi 16 octobre 2008Date d'inscription 10 avril 2009 Dernière intervention - 10 avril 2009 à 09:58 - Dernière réponse : nikizim 67 Messages postés jeudi 16 octobre 2008Date d'inscription 10 avril 2009 Dernière intervention
- 10 avril 2009 à 13:20
Bonjour,

Je souhaiterais récupérer les erreurs générés lors d'une erreur de programmation dans un script php.

Je souhaiterais les récupérer pour les personnaliser lors de l'affichage mais je ne vois pas comment faire.

Pouvez-vous m'aider SVP ?

merci beaucoup d'avance.
Afficher la suite 

15 réponses

Meilleure réponse
nikizim 67 Messages postés jeudi 16 octobre 2008Date d'inscription 10 avril 2009 Dernière intervention - 10 avril 2009 à 12:45
1
Merci
Bonne merde on dit :p de ohuni

c'est exactement ou je suis ! :)

j'ai récupéré une fonction sur php net qui est sensé fonctionner !!!???

function userErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
    // Date et heure de l'erreur
    $dt = date("Y-m-d H:i:s (T)");

    // Définit un tableau associatif avec les chaînes d'erreur
    // En fait, les seuls niveaux qui nous interessent
    // sont E_WARNING, E_NOTICE, E_USER_ERROR,
    // E_USER_WARNING et E_USER_NOTICE
    $errortype = array (
                E_ERROR              => 'Erreur',
                E_WARNING            => 'Alerte',
                E_PARSE              => 'Erreur d\'analyse',
                E_NOTICE             => 'Note',
                E_CORE_ERROR         => 'Core Error',
                E_CORE_WARNING       => 'Core Warning',
                E_COMPILE_ERROR      => 'Compile Error',
                E_COMPILE_WARNING    => 'Compile Warning',
                E_USER_ERROR         => 'Erreur spécifique',
                E_USER_WARNING       => 'Alerte spécifique',
                E_USER_NOTICE        => 'Note spécifique',
                E_STRICT             => 'Runtime Notice',
                E_RECOVERABLE_ERROR => 'Catchable Fatal Error'
                );
    // Les niveaux qui seront enregistrés
    $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);
    
    $err = "<errorentry>\n";
    $err .= "\t<datetime>" . $dt . "</datetime>\n";
    $err .= "\t<errornum>" . $errno . "</errornum>\n";
    $err .= "\t<errortype>" . $errortype[$errno] . "</errortype>\n";
    $err .= "\t<errormsg>" . $errmsg . "</errormsg>\n";
    $err .= "\t<scriptname>" . $filename . "</scriptname>\n";
    $err .= "\t<scriptlinenum>" . $linenum . "</scriptlinenum>\n";

    if (in_array($errno, $user_errors)) {
        $err .= "\t<vartrace>".wddx_serialize_value($vars,"Variables")."</vartrace>\n";
    }
    $err .= "</errorentry>\n\n";
    
    // sauvegarde de l'erreur, et mail si c'est critique
    error_log($err, 3, "/usr/local/php4/error.log");
    if ($errno == E_USER_ERROR) {
        mail("phpdev@example.com","Critical User Error",$err);
    }
}


et qui est appelé de la façon suivante :

$old_error_handler = set_error_handler("userErrorHandler");


Pouvez-vous me dire comment cette fonction arrive a déclarer le variable : $errno

Parce que même en faisant le pires erreurs de php ça ne marche pas chez moi !

Merci nikizim 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 24074 internautes ce mois-ci

NookZ 2140 Messages postés jeudi 29 janvier 2009Date d'inscription 7 mars 2013 Dernière intervention - 10 avril 2009 à 10:01
0
Merci
Bonjour,

Je pense que ceci peut vous aider :
http://classes.scriptsphp.org/article.PHP-5-et-les-exceptions
okuni 1224 Messages postés jeudi 4 septembre 2008Date d'inscription 2 janvier 2014 Dernière intervention - 10 avril 2009 à 10:03
0
Merci
Salut,
Tu dois utiliser un .htaccess que tu met à la racine de ton site.
Tu rajoute ces lignes
ErrorDocument 404 /index.php?page=accueil&erreur=404

dans ce cas ci, si tu as une erreur 404, tu sera redirigé a la page indiqué.
cela fonctionne avec tout les type d'erreur.
0
Merci
Si tu parle de gestion des erreurs tu dois te renseigner sur le try catch et finally. C'est ce qu'il y a de plus propre pour recupérer ses erreurs ! après j'ai peut être mal compris ta demande mais je vois pas le rapport avec htaccess :o
okuni 1224 Messages postés jeudi 4 septembre 2008Date d'inscription 2 janvier 2014 Dernière intervention - 10 avril 2009 à 10:13
ben ça te permet de redirigé en cas d'erreur et de la gérer.
Ou alors c'est moi qui ait mal compris la question :p
0
Merci
Il a dit "Lors d'une erreur de programmation dans un script php" .

Mais generalement si ton code est buggé il est buggé, le try catch c'est plus subtile enfaite, mais si ya une erreur de code c'est le serveur hhtp qui va te renvoyer l'erreur, après ya des fonctions comme mysql_error() qiu renvoie de manière détaillées tes erreurs je sais pas si ca existe pour le code PHP je suis pas un expert en erreur AHAH lol ;).

Sinon utilise un IDE qui t'aide a corriger.
okuni 1224 Messages postés jeudi 4 septembre 2008Date d'inscription 2 janvier 2014 Dernière intervention - 10 avril 2009 à 10:23
0
Merci
ha ouai ok je vois, déso :p
alors je connais un programme c'est rapid php ou quelque chose comme ça. c'est un simple programme de programmation mais il existe un addon Xdebug (je suis sur du nom :p) qui te permet avec firefox de détecter un bug lors d'un lancement d'une page, alors le programme rapid php se lance et te montre l'erreur avec la manière de la corriger.

Je sais pas te dire plus car chez moi, ça n'a jamais fonctionné lol
nikizim 67 Messages postés jeudi 16 octobre 2008Date d'inscription 10 avril 2009 Dernière intervention - 10 avril 2009 à 10:24
0
Merci
Je vous remercie de de vos nombreuses réponses en si peut de temps ;)

J'ai lu le tuto proposé NookZ et je vais essayer de m'en inspirer je crois qu'il est pas mal. Mais le doc de manuelphp aussi.

Je vais vois tout ça et si je me perd je vous dit ...
okuni 1224 Messages postés jeudi 4 septembre 2008Date d'inscription 2 janvier 2014 Dernière intervention - 10 avril 2009 à 11:02
0
Merci
bonne merde on dit :p
okuni 1224 Messages postés jeudi 4 septembre 2008Date d'inscription 2 janvier 2014 Dernière intervention - 10 avril 2009 à 12:54
0
Merci
Il n'explique pas ce que représente toutes ces variables?
$errno, $errmsg, $filename, $linenum et $vars
Tu devrais trouver un exemple avec.
nikizim 67 Messages postés jeudi 16 octobre 2008Date d'inscription 10 avril 2009 Dernière intervention - 10 avril 2009 à 13:02
0
Merci
En faite je souhaiterais récupérer ne niveau de l'erreur lorsque l'on oublie un point virgule par exemple.
0
Merci
Je comprends pas pourquoi tu te casse tant la tête, c'est marqué quand ton script plante la ligne ( ou celle du dessous) et le type d'erreur ^^ S'pa suffisant :o?
nikizim 67 Messages postés jeudi 16 octobre 2008Date d'inscription 10 avril 2009 Dernière intervention - 10 avril 2009 à 13:20
0
Merci
Je souhaite integrer cette erreur dans un template error.php que j'inclue lorsqu'il y a une erreur. C'est pour cela que je récupérer cette erreur.