Rechercher : dans
Par :

Gestion des erreurs personnalisé avec PHP

Dernière réponse le 10 avr 2009 à 13:20:53 nikizim, le 10 avr 2009 à 09:58:12 
 Signaler ce message aux modérateurs

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.

Configuration: Windows Vista
Firefox 3.0.4

Meilleures réponses pour « Gestion des erreurs personnalisé avec PHP » dans :
Cacher les erreurs en PHP VoirRappelons avant toute chose, qu'il est toujours préférable, dans n'importe quel langage de programmation, de corriger les problèmes qui déclenchent les erreurs, avant d'essayer de masquer les erreurs. En effet, le fait de masquer les erreurs...
[PHP] Méthodes de débogage VoirI. Informations sur une variable I.1 echo I.2 print_r() I.3 var_dump() / var_export() I.4 Rediriger la sortie (ne pas afficher à l'écran) II. "Backtrace" ou rapport de contexte III. Bien utiliser les rapports d'erreur IV. Le mot clé...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Mail et fonctions réseau VoirPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est...

1

NookZ, le 10 avr 2009 à 10:01:47

Bonjour,

Je pense que ceci peut vous aider :
http://classes.scriptsphp.org/article.PHP-5-et-les-exception­s

Répondre à NookZ

2

okuni, le 10 avr 2009 à 10:03:13

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. L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)

Répondre à okuni

3

Samy, le 10 avr 2009 à 10:06:38

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

Répondre à Samy

4

okuni, le 10 avr 2009 à 10:13:05

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 L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni

5

Samy, le 10 avr 2009 à 10:17:11

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.

Répondre à Samy

6

Samy, le 10 avr 2009 à 10:18:40
Répondre à Samy

7

okuni, le 10 avr 2009 à 10:23:03

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 L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni

8

nikizim, le 10 avr 2009 à 10:24:01

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 ...

Répondre à nikizim

9

Samy, le 10 avr 2009 à 10:29:01

Bonne chance

Répondre à Samy

10

okuni, le 10 avr 2009 à 11:02:39

Bonne merde on dit :p L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni

11

nikizim, le 10 avr 2009 à 12:45:32
  • +1

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 !

Répondre à nikizim

12

okuni, le 10 avr 2009 à 12:54:32

Il n'explique pas ce que représente toutes ces variables?
$errno, $errmsg, $filename, $linenum et $vars
Tu devrais trouver un exemple avec. L'amour, c'est comme les spaghettis; quand c'est mou, c'est ­cuit. (proverbe belge)

Répondre à okuni

13

nikizim, le 10 avr 2009 à 13:02:28

En faite je souhaiterais récupérer ne niveau de l'erreur lorsque l'on oublie un point virgule par exemple.

Répondre à nikizim

14

Samy, le 10 avr 2009 à 13:08:53

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?

Répondre à Samy

15

 nikizim, le 10 avr 2009 à 13:20:53

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.

Répondre à nikizim