Während die anderen Antworten hier verhindern , dass die Fehler in Ihr Fehlerprotokoll geschrieben werden, ignorieren sie einfach die Fehlermeldung und beheben den Fehler nicht .
Der Fehler in diesem Fall ist, dass Ihre php.ini noch entweder magic_quotes_gpc on
oder magic_quotes_gpc off
irgendwo darin ist. Gleiches gilt für register_globals on
oder register_globals off
.
Der Fehler ist nicht, dass die Direktive ein- oder ausgeschaltet ist. Der Fehler ist, dass die Direktive überhaupt nicht existieren sollte. Kommentieren Sie diese Zeilen aus Ihrer php.ini oder entfernen Sie sie vollständig, und PHP schreibt keine Fehler mehr über veraltete Anweisungen.
Dies kann natürlich zu Problemen mit Ihrer Anwendung führen, wenn eine dieser Anwendungen aktiviert sein muss.
Der Grund, warum dies ein Fehler in PHP 5.3 ist, ist, dass diese Anweisungen in PHP 6 nicht einmal existieren und PHP 6 sich so verhält, als ob sie deaktiviert wären. Wenn Sie jemals ein Upgrade auf PHP 6 planen, ist jetzt ein guter Zeitpunkt, um mit dem Upgrade oder Ersetzen Ihrer Anwendung zu beginnen.
Eine andere Lösung, die Sie versuchen könnten, ist das Downgrade von PHP auf den Zweig 5.2 oder 5.1.
PHP-Schreibfehler in das Apache-Protokoll sind natürlich, da PHP als Apache-Modul ausgeführt wird. Sie können so etwas error_log = /var/log/php_errors.log
in Ihre php.ini einfügen und Apache neu starten, um die PHP-Fehler von Ihren Apache-Fehlern zu trennen. Während Sie dort sind, dann würde ich empfehlen Wechsel display_errors
zu off
. Fehlermeldungen können häufig vertrauliche Informationen enthalten, die ein Angreifer nicht sehen soll. Sie werden dies höchstwahrscheinlich in Ihrer php.ini sehen:
; - display_errors = Off [Security]
; With this directive set to off, errors that occur during the execution of
; scripts will no longer be displayed as a part of the script output, and thus,
; will no longer be exposed to remote users. With some errors, the error message
; content may expose information about your script, web server, or database
; server that may be exploitable for hacking. Production sites should have this
; directive set to off.
Es gibt keinen vernünftigen Grund, warum die Fehlermeldungen HTML enthalten.
Um eine andere Frage zu beantworten, die Sie nicht gestellt haben, meldet PHP dies als Grund dafür, in <b>Unknown</b> on line <b>0</b>
dass die Fehlermeldung für von Ihnen geschriebene Zeilen PHP-Code entwickelt wurde, der gefundene Fehler jedoch darin bestand, die php.ini zu analysieren, bevor sie überhaupt aufgetreten ist Lesen Sie eine einzelne Codezeile oder öffnen Sie sogar eine .php-Datei. Da es keine Datei geöffnet hat und keine Zeilennummer hat, werden sie als "Unbekannt" und "0" gemeldet.