Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

contributions:debug_poussif [2012/06/21 08:41] (Version actuelle)
Ligne 1: Ligne 1:
 +(texte à vérifier)
 +
 +Sur proposition de l'admin en cas de besoin de debug poussé, voici le code PHP
 +qui se décompose de deux fonctions et de deux lignes de codes magiques qui doivent être placés au début du code après les fonctions.
 +
 +<code>
 +<?php
 +
 +function myErrorHandler($errno, $errstr, $errfile, $errline)
 +  {
 +  if (!(error_reporting() & $errno))
 +    {
 +    // Ce code d'erreur n'est pas inclus dans error_reporting()
 +    return;
 +    }
 +  switch ($errno)
 +    {
 +    case E_USER_ERROR:
 +      $error_type = 'ERREUR';
 +      break;
 +    case E_USER_WARNING:
 +      $error_type = 'ALERTE';
 +      break;
 +    case E_USER_NOTICE:
 +      $error_type = 'AVERTISSEMENT';
 +      break;
 +    default:
 +      $error_type = 'ERREUR INCONNUE';
 +      break;
 +    }
 +  /* Afficher et reporter l'erreur */
 +  $ip = $_SERVER['REMOTE_ADDR'];
 +  $error_admin = date("d/m/Y - H:i",time())." - ".$error_type." - ".$ip." - Problème à la ligne ".$errline." dans le fichier ".$errfile." : [".$errno."] ".$errstr;
 +  $error_public = $error_type." - Problème à la ligne ".$errline." : [".$errno."] ".$errstr;
 +  echo("<b>".$error_public."</b><br/>\n");
 +  fs_log($error_admin);
 +  /* Ne pas exécuter le gestionnaire interne de PHP */
 +  if($error_type == 'ERREUR'){exit(1);}
 +  return true;
 +  }
 +function shutdown_function()
 +  {
 +  $a=error_get_last();
 +  if($a!=null)
 +    {
 +    $ip = $_SERVER['REMOTE_ADDR'];
 +    $errstr = implode(",", $a);
 +    $error_admin = date("d/m/Y - H:i",time())." - FATAL ERROR - ".$ip." - Problème : ".$errstr ;
 +    @fs_log($error_admin);
 +    return true;
 +    }
 +  }
 +</code>  
 +  
 +__** Ici vous ajoutez toutes vos fonctions **__ 
 +
 +<code>
 +$old_error_handler = set_error_handler("myErrorHandler");
 +register_shutdown_function('shutdown_function');
 +</code>
 +
 +__** Ici vous ajoutez votre code PHP **__
 +<code>
 +?>
 +</code>