Tutorials
Administration
ErrorLog anzeigen und löschen
Inhaltsverzeichnis
- Über dieses Dokument
- Protokoll der PHP-Fehler
- Anzeigen und löschen über phpMyAdmin
- Anzeigen und löschen über eine eigene Funktion
- Screenshots
- Schlussbemerkung
1. Über dieses Dokument
Dieses Tutorial beschreibt, wie man das Protokoll der PHP-Fehler anzeigen und löschen kann.2. Protokoll der PHP-Fehler
Bei der Erstellung einer Website mit dem webEdition CMS kann es sehr hilfreich sein, wenn man sich alle PHP-Fehler über die webEdition-Fehlerbehandlung mitprotokolliert. Die Fehlerbehandlung aktivieren Sie wie folgt:- Wählen Sie aus dem webEdition-Menü den Eintrag "Optionen" » "Einstellungen...".
- Klicken Sie auf den "Fehlerbehandlung"-Tab
- Aktivieren Sie hier folgende Checkboxen:
- webEdition Fehlerbehandlung aktivieren
- Fehler
- Warnungen
- Hinweise
- Fehler protokollieren
- Bestätigen Sie Ihre Einstellungen durch einen Klick auf den "Speichern"-Button.
- ID
- Text
- Date
3. Anzeigen und löschen über phpMyAdmin
Der wohl bequemste Weg, sich das Protokoll der PHP-Fehler anzeigen zu lassen bzw. es zu löschen ist das Datenbankverwaltungssystem phpMyAdmin, welches die meisten Provider bei ihren Accounts zur Verfügung stellen.Für eine Anzeige des Protokolls gehen Sie wie folgt vor:
- Öffnen Sie phpMyAdmin.
- Wählen Sie die Datenbank aus, welche Sie für Ihre Installation des webEdition CMS nutzen.
- Sie sollten nun im linken Frame alle Tabellen der Datenbank aufgelistet sehen.
- Klicken Sie auf den Link für die Tabelle "tblErrorLog".
- Auf der rechten Seite wird Ihnen nun die Struktur dieser Tabelle angezeigt. Klicken Sie auf den Reiter "Anzeigen" im oberen Bereich der Seite. Sollte dieser Reiter deaktiviert sein, dann ist die Tabelle leer und es wurden keine PHP-Fehler protokolliert und Sie können den nächsten Schritt nicht durchführen.
- Es wird nun eine Übersicht alle PHP-Fehler angezeigt.
- Öffnen Sie phpMyAdmin.
- Wählen Sie die Datenbank aus, welche Sie für die Installation des webEdition CMS nutzen.
- Sie sollten nun im linken Frame alle Tabellen der Datenbank aufgelistet sehen.
- Klicken Sie auf den Link für die Tabelle "tblErrorLog".
- Klicken Sie auf den Reiter "Leeren". Sollte dieser Reiter deaktiviert sein, dann ist die Tabelle bereits leer und es wurden keine PHP-Fehler protokolliert und Sie brauchen die nächsten Schritte nicht durchzuführen.
- Sie werden nun gefragt, ob die Anfrage wirklich durchführen möchten. Bestätigen Sie diese Frage mit "OK".
- Im oberen Bereich wird Ihre Aktion wie folgt bestätigt: "Die Tabelle tblErrorLog wurde geleert."
4. Anzeigen und löschen über eine eigene Funktion
Sollten Sie kein phpMyAdmin zu Verfügung haben oder möchten Sie dieses Datenbankverwaltungssystem einfach nur nicht nutzen, dann können Sie sich auch eine kleine eigene Administrationsoberfläche für diese eine Datenbanktabelle erstellen. Gehen Sie dazu wie folgt vor:- Legen Sie über Datei -> Neu -> Vorlage eine neue Vorlage an.
- Geben Sie dieser neuen Vorlage den Dateinamen "tblErrorLog" (die Endung .tmpl wird durch das webEdition CMS automatisch hinzugefügt).
- Speichern Sie die Vorlage durch einen Klick auf den "Speichern"-Button.
- Wechseln Sie durch einen Klick auf den "Bearbeiten"-Tab in die "Bearbeiten"-Ansicht.
- Löschen Sie den vorgegebenen Quelltext und fügen folgenden Quelltext ein.
<?php
function showErrorLog()
{
$counter = (int) 0;
$a_data = array();
$GLOBALS['DB_WE']->query('SELECT * FROM '.ERROR_LOG_TABLE.' ORDER BY ID DESC');
while($GLOBALS['DB_WE']->next_record())
{
$a_data[$counter]['ID'] = (int) $GLOBALS['DB_WE']->f('ID');
$a_data[$counter]['Text'] = (string) $GLOBALS['DB_WE']->f('Text');
$a_data[$counter]['Date'] = (int) $GLOBALS['DB_WE']->f('Date');
$counter++;
}
$tableHead = (string) '';
$tableHead .= '<tr>';
$tableHead .= '<th>ID</th>';
$tableHead .= '<th>Text</th>';
$tableHead .= '<th>Datei</th>';
$tableHead .= '<th>Datum</th>';
$tableHead .= '</tr>';
$tableBody = (string) '';
if(count($a_data) > 0)
{
$str_pattern = '/Script name: (?P<file>.*), Line number: (?P<line>[0-9]*)/';
foreach($a_data as $key => $value)
{
preg_match($str_pattern, $value['Text'], $arr_matches);
$str_path = $_SERVER['DOCUMENT_ROOT'].$arr_matches['file'];
$tableBody .= '<tr>';
$tableBody .= '<td>'.$value['ID'].'</td>';
$tableBody .= '<td>'.$value['Text'].'</td>';
if(file_exists($str_path) && is_readable($str_path))
{
$str_href = (string) $_SERVER['PHP_SELF'];
$str_href .= '?error='.rawurlencode($value['Text']);
$str_href .= '&file='.$arr_matches['file'];
$str_href .= '&line='.$arr_matches['line'];
$str_href .= '#line'.$arr_matches['line'];
$tableBody .= '<td><a href="'.$str_href.'" target="_blank">anzeigen</a></td>';
}
else
{
$tableBody .= '<td> </td>';
}
$tableBody .= '<td>'.date('d.m.Y H:i:s', $value['Date']).'</td>';
$tableBody .= '</tr>';
}
}
else
{
$tableBody .= '<tr>';
$tableBody .= '<td colspan="4">Die Tabelle \''.ERROR_LOG_TABLE.'\' ist leer.</td>';
$tableBody .= '</tr>';
}
return '<table border="1">'.$tableHead.$tableBody.'</table>';
}
function showError()
{
$str_content = file_get_contents($_SERVER['DOCUMENT_ROOT'].$_GET['file']);
$str_content = highlight_string($str_content, true);
$str_content = str_replace("\n", '', $str_content);
$arr_content = explode('<br />', $str_content);
$str_out = (string) '<h2>Datei: '.$_GET['file'].'</h2>';
$str_out .= '<table>';
foreach($arr_content as $i_line => $str_line)
{
$i_line_number = (int) $i_line+1;
$str_tr_style = '';
if(is_int($i_line_number/2))
{
$str_tr_style = ' style="background: #F9F9F9;"';
}
$str_td_style = '';
if($i_line_number == $_GET['line'])
{
$str_td_style = ' style="border-top: 1px solid #FF0000;"';
}
$str_out .= '<tr id="line'.$i_line_number.'"'.$str_tr_style.'>';
$str_out .= '<td'.$str_td_style.'>'.$i_line_number.' </td>';
$str_out .= '<td'.$str_td_style.'>'.$str_line.'</td>';
$str_out .= '</tr>';
if($i_line_number == $_GET['line'])
{
$str_out .= '<tr>';
$str_out .= '<td colspan="2" class="error">'.$_GET['error'].'</td>';
$str_out .= '</tr>';
}
}
$str_out .= '</table>';
return $str_out;
}
function truncateTblErrorLog()
{
$GLOBALS['DB_WE']->query('TRUNCATE TABLE '.ERROR_LOG_TABLE);
}
if(!empty($_GET['truncate']))
{
truncateTblErrorLog();
header('Location: '.strip_tags($_SERVER['PHP_SELF']));
}
?>
<?xml version="1.0" encoding="iso-8859-15"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head xml:lang="de" lang="de">
<we:title>Error-Log anzeigen und löschen</we:title>
<we:description />
<we:keywords />
<we:charset defined="ISO-8859-15">ISO-8859-15</we:charset>
<style>
body {
font-size: 11px;
font-family: Monaco, 'Courier New', Courier, mono;
}
table {
border-collapse: collapse;
border-spacing: 0;
border: 1px solid #000000;
}
th {
font-weight: bold;
}
th, td {
vertical-align: top;
text-align: left;
padding: 2px;
font-size: 11px;
font-family: Monaco, 'Courier New', Courier, mono;
}
.error {
background: #FF0000;
color: #FFFFFF;
}
.error * {
color: #FFFFFF;
}
</style>
</head>
<body onload="scrollIt()">
<h1>Error-Log anzeigen und löschen</h1>
<?php if(empty($_GET['error']) && empty($_GET['file']) && empty($_GET['line'])): ?>
<h2>Error-Log anzeigen</h2>
<?php echo showErrorLog(); ?>
<h2>Error-Log löschen</h2>
<p>
<?php $str_path = strip_tags($_SERVER['PHP_SELF']).'?truncate=1'; ?>
<a href="<?php echo $str_path; ?>">Tabelle '<?php echo ERROR_LOG_TABLE; ?>' leeren</a>
</p>
<?php endif; ?>
<?php
if(!empty($_GET['error']) && !empty($_GET['file']) && !empty($_GET['line']))
{
echo showError();
}
?>
<script type="text/javascript">
function scrollIt()
{
window.scrollBy(0, -100);
}
</script>
</body>
</html>
- Speichern Sie die Vorlage durch einen Klick auf den "Speichern"-Button.
- Legen Sie nun auf Grundlage dieser eben erstellten Vorlage ein webEdition-Dokument an. Gehen Sie dabei wie folgt vor:
- Datei -> Neu -> webEdition Seite -> Leere Seite
- Wechseln Sie durch einen Klick auf den "Eigenschaften"-Tab auf die "Eigenschaften"-Seite.
- Geben Sie als Dateiname "tblErrorLog" ein.
- Wählen Sie als Dateierweiterung ".php" aus der Select-Box aus.
- Wählen Sie als Vorlage "tblErrorLog.tmpl" aus.
- Aktivieren Sie die "Seite dynamisch generieren"-Checkbox.
- Aktivieren Sie die "Beim Speichern veröffentlichen"-Checkbox.
- Speichern Sie das webEdition-Dokument durch einen Klick auf den "Speichern"-Button.
- Rufen Sie nun das eben erstellte webEdition-Dokument mit Ihrem Browser außerhalb des webEdition CMS auf. Sie sehen auf dieser Seite im oberen Bereich eine Übersicht über das Protokoll der PHP-Fehler. Im unteren Bereich der Seite finden Sie einen Link "Tabelle 'tblErrorLog' leeren". Durch einen Klick auf diesen Link wird das Protokoll gelöscht.
5. Screenshots

Abbildung 1 - ErrorLog anzeigen

Abbildung 2 - Error anzeigen




Kommentare (1)
buy pills tramadol amxf acomplia no script pay master card zmxd prednisone online 8]]] ambien online :)