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

<?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;
    }
  }

Ici vous ajoutez toutes vos fonctions

$old_error_handler = set_error_handler("myErrorHandler");
register_shutdown_function('shutdown_function');

Ici vous ajoutez votre code PHP

?>