error_reporting(0) - Wo im Skript einbetten?
Susi
- php
Ich möchte Datenbankfehlermeldungen abschalten. So, jetzt hat mir jemand gesagt, dass ich error_reporting(0) einbetten muss.
Die Frage: meine Webseite besteht aus verschiedenen Seiten, zB Home.php, Kontakt.php, Seite1.php
Muss ich das in jeder einzelnen Seite einbetten?
Ist es egal, wo man es im Skript platziert?
Wie kann ich es am einfachsten testen? zB dadurch, wenn ich die Zugangsdaten zur Datenbank ändere? Weil, bei falsche Kennung müsste doch eine Fehlermeldung erscheinen.
Hello,
Ich möchte Datenbankfehlermeldungen abschalten. So, jetzt hat mir jemand gesagt, dass ich error_reporting(0) einbetten muss.
PHP gibt eigentlich gar keine Datenbank-Fehlermeldungen von alleine aus.
Die Frage: meine Webseite besteht aus verschiedenen Seiten, zB Home.php, Kontakt.php, Seite1.php
Muss ich das in jeder einzelnen Seite einbetten?
Du könntest in einer .htaccess-Datei die Zeile
php_value display_errors 0
einfügen, wenn das System vernünftig eingerichtet ist.
Das gilt dann für alle Scripte des Verzeichnisbaumes, in dem die .htaccess-Datei liegt.
Mit etwas Pech bekommst Du allerdings einen "Error 500". Probier es einfach mal aus, ob Du diese Konfiguration durchführen darfst.
Weil, bei falsche Kennung müsste doch eine Fehlermeldung erscheinen.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Ich möchte Datenbankfehlermeldungen abschalten.
Völlig falscher Weg.
1. Vermeide die Fehler, dann hast du auch keine Fehlermeldungen.
2. Treten Fehler auf, behandle sie. Speziell Datenbanken geben von sich aus in PHP keine Fehler aus, PHP gibt Fehler aus, wenn man vorangehende Datenbank-Fehler ignoriert und blindlings weiterstolpert, als wäre nichts passiert.
Immer beliebt: Mit dem Ergebnis von mysql_query() zu arbeiten, ohne sich darum zu kümmern, dass mysql_query() auch mal null zurückgeben kann. In der Folge wird eine Funktion wie mysql_fetch_row() mit einem ungültigen Wert, eben null, aufgerufen, und beschwert sich logischerweise.
Richtig wäre, einfach mal das Ergebnis von mysql_query() zu prüfen, bevor man es benutzt. Pfuscher schalten stattdessen die Fehlermeldung ab. (Die Pfuscher sind es dann auch, die sich über „Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result“ wundern. Alle anderen haben nach mysql_query()s null-Ergebnis die genaue Ursache mit mysql_error() selbst herausgefunden.)
3. PHP-Fehlermeldungen haben im HTML-Code nichts suchen, display_errors sollte ausgeschaltet sein, so dass die Meldungen nur im Fehlerprotokoll landen.
Hello,
- Vermeide die Fehler, dann hast du auch keine Fehlermeldungen.
Laufzeitfehler lassen sich nicht einfach "vermeiden". Man benötigt die Rückmeldungen i.d.R. auch, um den Programmfluss sinvoll steuern zu können.
Daher ist es bei PHP auch so ärgerlich, dass es keine (ein)eindeutigen Fehlernummern, sondern nur Fehlertexte zurückgibt. Da haben die Entwickler wohl damals nicht nachgedacht.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg