Overview
Comment:possibilité d'avoir les erreurs par email, et toujours loguer les erreurs
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 780a9c9c43e5fe4f6a338aea0075c7c0c78760e5
User & Date: bohwaz on 2014-04-01 15:51:01
Other Links: manifest | tags
Context
2014-04-01
15:53
ne pas nettoyer la table si le champ identifiant n'est pas encore déterminé check-in: 5784129344 user: bohwaz tags: trunk
15:51
possibilité d'avoir les erreurs par email, et toujours loguer les erreurs check-in: 780a9c9c43 user: bohwaz tags: trunk
15:37
Déplacement check-in: 72a3a0a5fe user: bohwaz tags: trunk
Changes

Modified src/config.dist.php from [2bb62bda6d] to [407def399a].

    39     39   const PLUGINS_ROOT = DATA_ROOT . '/plugins';
    40     40   
    41     41   // Affichage des erreurs
    42     42   // Si "true" alors un message expliquant l'erreur et comment rapporter le bug s'affiche
    43     43   // en cas d'erreur. Sinon rien ne sera affiché.
    44     44   // Défaut : true
    45     45   const SHOW_ERRORS = true;
           46  +
           47  +// Envoi des erreurs par e-mail
           48  +// Si rempli, un email sera envoyé à l'adresse indiquée à chaque fois qu'une erreur
           49  +// d'exécution sera rencontrée.
           50  +// Si "false" alors aucun email ne sera envoyé
           51  +// Note : les erreurs sont déjà toutes loguées dans error.log à la racine de DATA_ROOT
           52  +const MAIL_ERRORS = false;
    46     53   
    47     54   // Utilisation de cron pour les tâches automatiques
    48     55   // Si "true" on s'attend à ce qu'une tâche automatisée appelle
    49     56   // le script cron.php à la racine toutes les 24 heures. Sinon Garradin
    50     57   // effectuera les actions automatiques quand quelqu'un se connecte à 
    51     58   // l'administration ou visite le site.
    52     59   // Défaut : false
    53     60   const USE_CRON = false;

Modified src/include/init.php from [489f54a69f] to [6e363a5c56].

    96     96   }
    97     97   
    98     98   // Affichage des erreurs par défaut
    99     99   if (!defined('Garradin\SHOW_ERRORS'))
   100    100   {
   101    101       define('Garradin\SHOW_ERRORS', true);
   102    102   }
          103  +
          104  +if (!defined('Garradin\MAIL_ERRORS'))
          105  +{
          106  +    define('Garradin\MAIL_ERRORS', false);
          107  +}
   103    108   
   104    109   // Utilisation de cron pour les tâches automatiques
   105    110   if (!defined('Garradin\USE_CRON'))
   106    111   {
   107    112       define('Garradin\USE_CRON', false);
   108    113   }
   109    114   
................................................................................
   123    128       }
   124    129       else
   125    130       {
   126    131           ini_set('date.timezone', 'Europe/Paris');
   127    132       }
   128    133   }
   129    134   
          135  +ini_set('error_log', DATA_ROOT . '/error.log');
          136  +ini_set('log_errors', true);
          137  +
   130    138   if (SHOW_ERRORS)
   131    139   {
   132    140       // Gestion par défaut des erreurs
   133         -    ini_set('error_log', DATA_ROOT . '/error.log');
   134         -    ini_set('log_errors', true);
   135    141       ini_set('display_errors', true);
   136    142       ini_set('html_errors', false);
   137    143   
   138    144       if (PHP_SAPI != 'cli')
   139    145       {
   140    146           ini_set('error_prepend_string', '<!DOCTYPE html><meta charset="utf-8" /><style type="text/css">body { font-family: sans-serif; } h3 { color: darkred; } 
   141    147               pre { text-shadow: 2px 2px 5px black; color: darkgreen; font-size: 2em; float: left; margin: 0 1em 0 0; padding: 1em; background: #cfc; border-radius: 50px; }</style>
................................................................................
   200    206           if (is_array($value))
   201    207               $value = json_encode($value);
   202    208   
   203    209           $error .= $key . ': ' . $value . "\n";
   204    210       }
   205    211       
   206    212       $error = str_replace("\r", '', $error);
          213  +    error_log($error);
   207    214       
          215  +    if (MAIL_ERRORS)
          216  +    {
          217  +        mail(MAIL_ERRORS, '[Garradin] Erreur d\'exécution', $error, 'From: "' . WWW_URL . '" <noreply@no.reply>');
          218  +    }
          219  +
   208    220       if (PHP_SAPI == 'cli')
   209    221       {
   210    222           echo $error;
   211    223       }
   212         -    elseif (SHOW_ERRORS)
          224  +    else
   213    225       {
   214    226           echo '<!DOCTYPE html><meta charset="utf-8" /><style type="text/css">body { font-family: sans-serif; } h3 { color: darkred; }
   215    227           pre { text-shadow: 2px 2px 5px black; color: darkgreen; font-size: 2em; float: left; margin: 0 1em 0 0; padding: 1em; background: #cfc; border-radius: 50px; }</style>
   216    228           <pre> \__/<br /> (xx)<br />//||\\\\</pre>
   217         -        <h1>Erreur d\'exécution</h1>
   218         -        <p>Une erreur s\'est produite à l\'exécution de Garradin. Pour rapporter ce bug
   219         -        merci d\'inclure le message suivant :</p>
   220         -        <textarea cols="70" rows="'.substr_count($error, "\n").'">'.htmlspecialchars($error, ENT_QUOTES, 'UTF-8').'</textarea>
   221         -        <hr />
   222         -        <p><a href="http://dev.kd2.org/garradin/Rapporter%20un%20bug">Comment rapporter un bug</a></p>';
   223         -    }
   224         -    else
   225         -    {
          229  +        <h1>Erreur d\'exécution</h1>';
   226    230   
          231  +        if (SHOW_ERRORS)
          232  +        {
          233  +            echo '<p>Une erreur s\'est produite à l\'exécution de Garradin. Pour rapporter ce bug
          234  +            merci d\'inclure le message suivant :</p>
          235  +            <textarea cols="70" rows="'.substr_count($error, "\n").'">'.htmlspecialchars($error, ENT_QUOTES, 'UTF-8').'</textarea>
          236  +            <hr />
          237  +            <p><a href="http://dev.kd2.org/garradin/Rapporter%20un%20bug">Comment rapporter un bug</a></p>';
          238  +        }
          239  +        else
          240  +        {
          241  +            echo '<p>Une erreur s\'est produite à l\'exécution de Garradin.</p>
          242  +            <p>Le webmaster a été prévenu.</p>';
          243  +        }
   227    244       }
   228    245   
   229    246       exit;
   230    247   }
   231    248   
   232    249   set_error_handler('Garradin\exception_error_handler');
   233    250   set_exception_handler('Garradin\exception_handler');