Welche Fehler PHP anzeigt, kann man selbst bestimmen.
Dazu gibt es die Funktion error_reporting( what ).
Die Standard-PHP-Einstellung (in der php.ini vordefiniert) entspricht:
<?php
error_reporting(E_ALL ^ E_NOTICE); ?>
Übersetzt: Reportiere alle Fehler, ausser E_NOTICE, also PHP-Anmerkungen.
Diese Anmerkungen sind eigentlich schon irgendwo gut gemeint, aber eben doch "lästig", denn sie merken alles an, was nicht 100% schön programmiert ist.
Also weg damit.
<?php
error_reporting(NULL); ?>
Dieser Modus würde bewirken, dass gar keine Fehler mehr ausgegeben werden.
Bei schwerwiegenden Fehlern wird das Script dennoch abgebrochen.
Nur erhält der Besucher keine für ihn unnötige Fehlermeldung.
Das ist an sich gut. Aber nicht ganz - denn du erhältst auch keine Möglichkeit, zu sehen, was du da falsch programmiert hast.
Also sollte error_reporting(E_ALL ^ E_NOTICE) deine Wahl sein.
Was es alles für Fehlertypen für error_reporting( what ) gibt, die es einzeln ein- und auszuschalten gibt, steht auf der Manualseite auf php.net
error_reporting( NULL ) schaltet generell jede Form von Fehleranzeige aus.
Und nicht nur das, jegliche Fehlerbehandlung wird unmöglich gemacht.
Auch eventuellen mitloggen oder so...
Is doof.
Besser:
<?php
ini_set("display_errors", 0); ?>
Dies wäre die ideale Einstellung ab dem Zeitpunkt, ab dem die Page online steht.
Fehler werden nicht mehr angezeigt, aber du kannst trotzdem sehen, was für Fehler du gemacht hast:
Und dadefür bräuchtest am besten eine Datei, wo alles mitgeloggt wird.
Is sogar einfacher als gedacht:
Diese Zeilen zusammen am Anfang deiner Scripte eingefügt - am besten in eine Datei "errorlog.php" schmeissen und includen - und die Sache läuft.
Ab sofort werden die Fehler in der Datei ".../errorlog.txt" gesammelt.
Die Datei muss nicht existieren, sie wird von allein angelegt.
Wird aber kein Fehler angezeigt ;-)
Aber die Datei errorlog.txt hat nun folgenden Eintrag:
[29-Mar-2006 16:48:52] PHP Fatal error: Call to undefined function dieseFunktionGibtsNicht() in script.php on line 2
Schick. Und kein Besucher wird mit PHP-Gebrabbel genervt.
Apropos "schick"...
Ein paar Zeilen in der errorlog.php hinzugefügt und du bekommst die logdatei immer gleich zugemailt, wenn deine Page Script entdeckt, dass ein Fehler drinsteht: