Alors que les autres réponses ici volonté ne fait pas en sorte que les erreurs soient écrites dans votre journal d'erreurs, il ignore tout simplement le message d'erreur. message d'erreur et de ne pas réparer le erreur .
Dans ce cas, l'erreur vient du fait que votre php.ini contient encore soit magic_quotes_gpc on
ou magic_quotes_gpc off
quelque part en elle. Il en va de même pour les register_globals on
ou register_globals off
.
L'erreur ne réside pas dans le fait que la directive est activée ou désactivée. L'erreur est que la directive ne devrait pas exister du tout. Commentez ces lignes dans votre php.ini ou supprimez-les complètement et PHP cessera d'écrire des erreurs à propos des directives dépréciées.
Bien entendu, cela peut poser des problèmes à votre application si elle exige que l'un ou l'autre de ces éléments soit activé.
La raison pour laquelle il s'agit d'une erreur en PHP 5.3 est qu'en PHP 6, ces directives n'existeront même pas et PHP 6 se comportera comme si elles étaient désactivées. Si vous envisagez de passer à PHP 6, c'est le bon moment pour commencer à mettre à jour ou à remplacer votre application.
Une autre solution consiste à rétablir la version 5.2 ou 5.1 de PHP.
Quant au fait que PHP écrive des erreurs dans le journal d'Apache, c'est naturel puisque PHP fonctionne en tant que module d'Apache. Vous pouvez mettre quelque chose comme error_log = /var/log/php_errors.log
dans votre php.ini et redémarrez Apache pour séparer les erreurs PHP des erreurs Apache. Pendant que vous y êtes, je vous recommande de changer display_errors
a off
. Les messages d'erreur peuvent souvent contenir des informations sensibles que vous ne voudriez pas qu'un attaquant voie. Vous verrez probablement ceci écrit dans votre php.ini :
; - 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.
Il n'y a aucune raison logique pour que les messages d'erreur contiennent du HTML.
Pour répondre à une autre question que vous n'avez pas posée, la raison pour laquelle PHP signale ceci comme étant in <b>Unknown</b> on line <b>0</b>
est que le message d'erreur a été conçu pour les lignes de code PHP que vous avez écrites, mais l'erreur qu'il a trouvée était dans l'analyse du php.ini avant même qu'il n'ait lu une seule ligne de code ou même ouvert un fichier .php. Comme il n'a pas ouvert de fichier et qu'il n'a pas de numéro de ligne, il les signale comme "Inconnu" et "0".