Als Antwort auf die Frage "Warum treten die plötzlich auf? Ich habe dieses Skript jahrelang verwendet und hatte nie ein Problem."
Es ist sehr üblich, dass die meisten Websites unter der "Standard" Fehlermeldung "Alle Fehler anzeigen, aber keine 'Notizen' und 'Obsolete'" arbeiten. Dies wird in der php.ini festgelegt und gilt für alle Websites auf dem Server. Das bedeutet, dass diese "Notizen" in den Beispielen unterdrückt (versteckt) werden, während andere Fehler, die als kritischer angesehen werden, angezeigt/aufgezeichnet werden.
Die andere wichtige Einstellung ist, dass die Fehler verborgen werden können (d.h. display_errors
auf "aus" oder "syslog" gesetzt).
In diesem Fall ist entweder die error_reporting
geändert worden, um auch Notizen anzuzeigen (wie in den Beispielen) und/oder die Einstellungen wurden geändert, um display_errors
auf dem Bildschirm anzuzeigen (anstatt sie zu unterdrücken/zu protokollieren).
Warum haben sie sich geändert?
Die offensichtlichste/einfachste Antwort ist, dass jemand eine dieser Einstellungen in der php.ini angepasst hat, oder eine aktualisierte Version von PHP jetzt eine andere php.ini verwendet als zuvor. Das ist der erste Ort, um nachzusehen.
Jedoch ist es auch möglich, diese Einstellungen in
- .htconf (Webserver-Konfiguration, einschließlich vhosts und Unter-Konfigurationen)*
- .htaccess
- im PHP-Code selbst
zu überschreiben, und beliebige dieser Dateien könnten ebenfalls geändert worden sein.
Es gibt auch die zusätzliche Komplikation, dass die Webserver-Konfiguration .htaccess-Direktiven aktivieren/deaktivieren kann, daher müssen Sie überprüfen, ob sich diese ändern.
(.htconf / .htaccess gehen davon aus, dass Sie apache verwenden. Wenn Sie über die Befehlszeile ausführen, gilt dies nicht; wenn Sie IIS oder einen anderen Webserver verwenden, müssen Sie diese Konfigurationen entsprechend überprüfen)
Zusammenfassung
- Überprüfen Sie, ob sich die php-Direktiven
error_reporting
und display_errors
in der php.ini geändert haben, oder ob Sie eine andere php.ini als zuvor verwenden.
- Überprüfen Sie, ob sich die php-Direktiven
error_reporting
und display_errors
in .htconf (oder vhosts usw.) geändert haben
- Überprüfen Sie, ob sich die php-Direktiven
error_reporting
und display_errors
in .htaccess geändert haben
- Wenn Sie Direktiven in .htaccess haben, überprüfen Sie, ob sie weiterhin im .htconf-Datei erlaubt sind
- Überprüfen Sie schließlich Ihren Code; möglicherweise eine nicht verwandte Bibliothek; um zu sehen, ob dort
error_reporting
und display_errors
php-Direktiven gesetzt wurden.