Page 1 sur 1

Non-affichage des erreurs PHP

Posté : 17 janv. 2007, 16:48
par Flashball
Bonjour,

J'ai mis en ligne dernièrement un site sur lequel j'aimerais désactiver l'affichage des erreurs PHP.

En effet, pour le moment, une erreur déclenche un affichage type "warning" ou autres, générant du coup à la suite un "headers already send" au moment où le code arrive sur l'en-tête de la page à afficher, qui est soit la page prévue soit la page d'erreur par défaut. Pour résumé, en cas de problème, un affichage PHP a lieu plutôt que la page d'erreur censée la camoufler au grand public.

Mon hébergeur m'a expliqué qu'il ne pouvait pas modifier la configuation de PHP, mais en revanche j'ai l'impression qu'il autorise l'utilisation du fichier '.htaccess' dont j'ai cru comprendre qu'il pourrait me permettre d'arriver à mes fins.

Quelque pourrait-il m'indiquer la marche à suivre?

Merci!

Flashball

Posté : 17 janv. 2007, 16:56
par zeus
Bonjour,

Tout d'abord, camoufler les erreurs n'est pas une solution. C'est comme cacher les miettes sous le tapis ;)

Mais sinon, effectivement, dans un fichier .htaccess, la commande php_value te permet d'agir sur certaines configuration du php.ini.

Par exemple, pour que tout les scripts PHP dépendant du .htaccess affichent toutes les erreurs, sauf les warning, il faut utiliser le code suivant dans un fichier .htaccess

Code : Tout sélectionner

php_value error_reporting "E_ALL & ~E_NOTICE"
Si tu n'est pas familier des .htaccess, je t'invite à lire cette page : http://www.commentcamarche.net/apache/apacht.php3

Il existe également un fonction PHP qui, dès qu'elle est présente dans un fichier, permet de modifier le niveau d'affichage des erreurs : error_reporting()

NB : consulte la page d'information de la fonction error_reporting() pour voir les options a donner au error_reporting dans le .htaccess

Posté : 17 janv. 2007, 17:02
par Flashball
OK merci, je vais lire tout çà avec soin.

Je vois que le lien que tu m'as fourni parle d'Apache, hors je suis hébergé sur une plate-forme NT/IIS, çà marche aussi?

Concernant les miettes sous le tapis, je pense qu'il vaut mieux ne pas les montrer aux invités et les nettoyer une fois qu'ils sont sortis, c'est plutôt çà la logique, je comptais pas les laisser moisir ces erreurs!

Posté : 17 janv. 2007, 18:02
par albat
Je viens en complément de zeus :
Comment peut-on mettre en ligne des pages non débuggées ??? :shock:

Posté : 17 janv. 2007, 18:36
par Flashball
Il ne s'agit pas de mettre en ligne des pages buggées (quoique... :lol: j'ai douloureusement expérimenté les différences qu'il pouvait y avoir entre des évolutions mineures de la version de PHP, et le site a donc effectivement été mis en ligne avec des pages buggées).

Il s'agit pour moi de gérer les erreurs imprévues. Exemple: la connection tombe, j'ai donc une erreur interceptée lors de la tentative de connection. Actuellement, ce genre d'erreur provoquerait un affichage de type "Warning: connexion failed blabla" suivi du très élégant "Headers already send blabla". C'est cet affichage que je cherche à éviter en redirigeant vers une page d'erreur expliquant qu'il y a "un problème pour le moment merci de réessayer plus tard blabla".