source: pmb4.1/trunk/fuentes/pmb/admin/view_log.inc.php @ 478

Last change on this file since 478 was 478, checked in by mabarracus, 4 years ago

copy trusty code 4.1

  • Property svn:executable set to *
File size: 3.2 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: view_log.inc.php,v 1.7 2009-05-16 11:12:04 dbellamy Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9$admin_layout = preg_replace('/!!menu_sous_rub!!/m', $msg["view_log"], $admin_layout);
10print $admin_layout;
11               
12
13function parseentry($str)
14{
15        preg_match('/<datetime>(.+?)<\/datetime>/msi', $str, $regs);
16        $tab['datetime']= $regs[1];
17        preg_match('/<errornum>(.+?)<\/errornum>/msi', $str, $regs);
18        $tab['errornum']= $regs[1];
19        preg_match('/<errortype>(.+?)<\/errortype>/msi', $str, $regs);
20        $tab['errortype']=$regs[1];
21        preg_match('/<errormsg>(.+?)<\/errormsg>/msi', $str, $regs);
22        $tab['errormsg']=$regs[1];
23        preg_match('/<scriptname>(.+?)<\/scriptname>/msi', $str, $regs);
24        $tab['scriptname']=$regs[1];
25        preg_match('/<scriptlinenum>(.+?)<\/scriptlinenum>/msi', $str, $regs);
26        $tab['scriptlinenum']=$regs[1];
27        return $tab;
28}
29
30function parselog($str)
31{
32
33  if(!strlen($str)) {
34    $array[] = "";
35    return $array;
36  }
37
38// premier niveau du parser : récupération des pattern <
39
40  while(preg_match("/<errorentry>(.+?)<\/errorentry>/msi", $str, $regs)) {
41
42    # on check s'il y a un pattern flml, si oui -> $tab[0]
43
44        $pattern=$regs[0];
45        $tab[] = parseentry($pattern);
46        $del = preg_replace("/\//", "\/", quotemeta($pattern));
47    $str = preg_replace("/$del/msi", "", $str);
48  }
49
50  return $tab;
51}
52
53print "<table >";
54print "<tr><td class=\"formtitle\">";
55print "Journal des événements";
56print "</td></tr><tr><td>";
57
58if(!$del) {
59if($fp=fopen($logfile, 'r')) {
60        $str=fread($fp, filesize($logfile));
61        fclose($fp);
62
63
64
65        // récupération du tableau des entrées
66        $entry = parselog($str);
67
68        if(sizeof($entry) && filesize($logfile) > 0) {
69                $entry = array_reverse($entry);
70                print "<a href='./admin.php?categ=log&del=1'>vider le journal</a>";
71                print "<table border='0' cellspacing='1'>";
72                while(list($cle, $valeur) = each($entry)) {
73
74                        switch($valeur['errornum']) {
75                                case E_CORE_ERROR:
76                                case E_COMPILE_ERROR:
77                                case E_USER_ERROR:
78                                case E_ERROR;
79                                        $evt_icon="<img src='./images/alert.gif' align='left'>";
80                                        $bgcolor='#ffffff';
81                                        break;
82                                case E_PARSE:
83                                case E_COMPILE_WARNING:
84                                case E_CORE_WARNING:
85                                case E_USER_WARNING:
86                                case E_WARNING:
87                                        $evt_icon="<img src='./images/warning.gif' align='left'>";
88                                        $bgcolor='#ffffff';
89                                        break;
90                                case E_USER_NOTICE:
91                                case E_NOTICE:
92                                        $evt_icon="<img src='./images/info.gif' align='left'>";
93                                        $bgcolor='#e0e0e0';
94                                        break;
95                        }
96
97                        print "<tr><td valign='top' bgcolor='$bgcolor'>$evt_icon";
98                                print '<b>'.$valeur['errortype'].'</b>&nbsp;';
99                        print $valeur['datetime'];
100                        print '<br />'.$valeur['errormsg'].'<br />';
101                        print '<b>script</b>&nbsp;:&nbsp;'.$valeur['scriptname'].'&nbsp;ligne&nbsp;';
102                        print $valeur['scriptlinenum'];
103                        print '</td><tr>';
104                }
105                print '</table>';
106        } else {
107                print "le fichier journal est vide";
108        }
109} else {
110        print "impossible d'ouvrir le fichier journal";
111}
112} else {
113
114        if($fp=fopen($logfile, 'w')) {
115                fwrite($fp, '');
116                fclose($fp);
117                print "le fichier journal a été purgé";
118        } else {
119                print "impossible de purger le fichier journal";
120        }
121}
122
123
124print "</td></tr></table>";
125
126
Note: See TracBrowser for help on using the repository browser.