Umgang mit Fehlermeldungen von MySQL
Tom
- php
Hello,
wie geht Ihr mit Fehlermeldungen von MySQL um?
Generell lasse ich in PHP alle Fehlermeldungen anzeigen.
Im Produktivfall wird einfach "display_errors" auf 0 gestellt, und die meldungen werden in einer Datei logged.
Da verstehe ich nur die Bemerkung im PHP-manual nicht bei Display_Errors:
Note: This is a feature to support your development and should never be used on production systems (e.g. systems connected to the internet).
Gerade für die Produktivumgebung ist es doch gut, hate ich bisher angenommen!
Die eigentliche Frage:
Um das Gleiche für MySQL-Meldugen zu erreichen habe ich bisher immer eine eigene Funktion benutzt, die "Display_Errors" abgefragt hat, wenn diese ausgeschaltet waren, auf eine Datei gelenkt haben.
Gibt's da nicht eine bessere Mögllichkeit?
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
[...]
Da verstehe ich nur die Bemerkung im PHP-manual nicht bei Display_Errors:
Note: This is a feature to support your development and should never be used on production systems (e.g. systems connected to the internet).
Gerade für die Produktivumgebung ist es doch gut, hate ich bisher angenommen!
Da geht es m. E. darum, dass in Produktivumgebungen Fehlermeldungen nicht an den Browser und damit den Anwender durchgereicht werden sollen.
Eine Fehlermeldung verraet ggf. Details ueber Dein System (z.B. Pfade) und wuerde so Informationen fuer einen moeglichen Angriff zur Hand geben.
Nick
Hello,
Eine Fehlermeldung verraet ggf. Details ueber Dein System (z.B. Pfade) und wuerde so Informationen fuer einen moeglichen Angriff zur Hand geben.
Genau!
Und deshalb hadere ich noch mit den Fehlermeldungen der Datenbank.
Manche sind für den User durchaus sinnvoll, andere gehen ihn überhaupt nichts an, sondern gehören nur ein eine Log-Datei für den Admin.
Ich habe im Moment einfach das Problem mit den Varianten:
1. Meldung nur ins Logfile
2. Meldung ins Logfile und auf den Screen
3. Meldung ist eigentlich kein "Fehler", sondern eine Info für den User, daher nur auf den Screen
Bei PHP ist das einfacher.
Fehler sind Fehler und abgefragte Varianzen (Bsp: is_writable()) sind Informationen für den User.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
hi,
Generell lasse ich in PHP alle Fehlermeldungen anzeigen.
Im Produktivfall wird einfach "display_errors" auf 0 gestellt, und die meldungen werden in einer Datei logged.Da verstehe ich nur die Bemerkung im PHP-manual nicht bei Display_Errors:
Note: This is a feature to support your development and should never be used on production systems (e.g. systems connected to the internet).
Gerade für die Produktivumgebung ist es doch gut, hate ich bisher angenommen!
Das Manual spricht natürlich davon, dieses Feature auf "on" zu schalten - das ist für Produktivumgebungen eben nicht gut, weisst du ja selber.
Wenn du es (produktiv) abschaltest, dann benutzt du es nicht mehr (produktiv) - damit ist dem Ratschlag "should never be used on production systems" dann ja auch genüge getan.
Um das Gleiche für MySQL-Meldugen zu erreichen habe ich bisher immer eine eigene Funktion benutzt, die "Display_Errors" abgefragt hat, wenn diese ausgeschaltet waren, auf eine Datei gelenkt haben.
Gibt's da nicht eine bessere Mögllichkeit?
Das Schreiben ins in der Konfiguration definierte error_log kannst du, sofern du's nicht bereits so machst, mittels error_log() sicher etwas einfacher haben, als mit eigenem fopen/fwrite o.ä.
Ob du um die Kapselung in einer eigenen Funktion herumkommst, um display_errors abfragen zu können - dazu sehe ich auf den oberflächlichen Blick keine Möglichkeit. Dürfte ja aber auch nicht der big deal sein. Und abhängig von der Einstellung von display_errors könnte man sich ja auch zu Scriptbeginn eine Konstante festlegen, wenn man nicht immer wieder danach fragen will, und dynamische Änderung der Einstellung zur Scriptlaufzeit nicht vorkommt.
gruß,
wahsaga