Katashii
Titel: SQL Database Error Log / by Katashi
Version: 1.0
Beschreibung: KATASHI'S Database Error Log
--------------------------------------------------------------------
Beschreibung:
Dieser Codeschnipsel protokolliert SQL Fehler, die ein User angezeigt bekommt.
Dabei sichert er, Datum + Uhrzeit, IP des Users sowie die Definierung des SQL Fehlers in einer Textdatei.
Aufwand:
2 Minuten
Viel Spaß
Der Eintrag in der Textdatei sieht beispielsweise so aus:
Zitat: |
13.08.2007 11:14 // DATABASE ERROR in WoltLab Burning Board // IP: 127.0.0.1 // Error Description: (Unknown column 'file' in 'where clause')
|
Hinweis: Die Log Datei wird im Ordner "logs/" erstellt.
----
weiter zum Download
sourceforge
interessant wäre auch der referer und das script ^^
dann müsste die error zeile so aussehen:
php: |
1:
|
$error = "".date("d.m.Y H:i")." // DATABASE ERROR in $this->appname // IP: $ip // Error Description: ($this->errdesc) //Referer: ".htmlentities(getenv("HTTP_REFERER"))." //Script: ".htmlentities(getenv("REQUEST_URI"))." \r\n"; |
|
Saghon
also wenn ich das einbaue und einen sql error provoziere wird nichts in den ordner logs geschrieben und die seite wird auch nicht mehr angezeigt...
kommt dann
code: |
1:
2:
3:
4:
5:
|
Warning: parse_url(http://) [function.parse-url]: Unable to parse URL in /home/acp/lib/class_parse.php on line 508
Warning: Cannot modify header information - headers already sent by (output started at /home/acp/lib/class_parse.php:508) in /home/editpost.php on line 257
|
|
Xannasavin
ist der fehler bei allen so?
also bei mir scheints zu funktionieren... dem verzeichnis und der vorher erstellten log datei chmod777 gegeben?
Saghon
31.10.2007 16:57 // DATABASE ERROR in WoltLab Burning Board // IP: xxx // Error Description: (You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1) //Referer:
http://xxx/modcp.php?threadid=7486&b...tion=thread_del //Script: /xxx/modcp.php
SoftCreatR
Was die Sache wesentlich vereinfachen würde (zudem auch genauer!):
Zitat: |
$ip = $_SERVER['REMOTE_ADDR'];
$error = "".date("d.m.Y H:i")." // DATABASE ERROR in $this->appname // IP: $ip // Error Description: ($this->errdesc) \r\n"; |
Diesen Part ersetzen durch:
Zitat: |
$errormsg .= "\n\n---------------\n\n"; |
Den Teil:
Zitat: |
fwrite($datei,$error); |
Ersetzen durch:
Zitat: |
fwrite($datei,$errormsg); |
So läufts bei mir seit Jahren

Dennoch nette Sache.
Xannasavin
Vielen Dank dir!
Ich hab das ganze noch ein bißchen anders gelöst... Damit stehen die Daten im Log untereinander wie auf dem Bildschirm und nicht in einer Linie - was das Lesen deutlich vereinfacht, natürlich aber mehr Platz wegnimmt...:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
|
/* Database Error Log */
$error = " || Date: ".date("d.m.Y @ H:i")."\r\n || Database error in $this->appname ($boardversion)\r\n || Errormsg: $errormsg\r\n || mysql error: $this->errdesc\r\n || mysql error number: $this->errno\r\n || mysql version: ".$this->getversion()."\r\n || php version: ".phpversion()."\r\n || Script: ".htmlconverter(getenv("REQUEST_URI"))."\r\n || Referer: ".htmlconverter(getenv("HTTP_REFERER"))."\r\n ---------------------\r\n";
$datei = fopen("acp/logs/database_errors.log","a");
fwrite($datei,$error);
fclose($datei);
/* Database Error Log */ |
|
was mir aufgefallen ist:
Errormsg: $errormsg\r\n
könnte man rausnehmen, sonst hat man alle angaben doppelt drin...
ich hab mir eh noch eine kleine php dazugeschrieben, die einfach die daten aus dem logfile ausliest und das logfile löscht wenn man möchte...