2009-12-03 3 views
0

J'ai essayé avec ce code:erreurs ne sont pas affichés dans le script PHP

error_reporting(E_ALL^E_NOTICE); 

ini_set("display_startup_errors","on"); 
ini_set("track_errors","on"); 
ini_set("error_reporting","E_ALL^E_NOTICE"); 

Mais encore des erreurs n'apparaissent pas sur mon script.It simplement afficher uniquement écran blanc si une erreur occur.Please me guider.

+1

pouvez-vous poster le code? parfois vos déclarations pourraient avoir '@' en face d'eux qui dit à PHP de supprimer les erreurs? –

+0

Vérifiez la source (vue-source) de la page vierge. Qu'est-ce que ça montre? – Shoban

+0

c'est du vrai code, je n'ai pas utilisé @ signe n'importe où – user223954

Répondre

1

Il se peut que votre fournisseur ait défini des erreurs PHP non générées mais consignées en interne. J'ai déjà vécu cela. Dans ce cas, un custom error handler peut vous aider. Avant, assurez-vous que vous n'avez pas de @s devant les déclarations et que log_errors est activé. Exécutez également un phpinfo() pour vérifier si tous les paramètres de rapport sont activés.

En outre, une page complètement vide peut être une erreur d'analyse structurelle. Vérifiez avec une simple déclaration d'erreur comme

ecxho("hello world"); 

d'abord.

+0

je n'ai pas utilisé le signe @. Pouvez-vous dire comment le gestionnaire d'erreur personnalisé peut être utilisé ici. – user223954

+0

Prenez l'exemple myErrorHandler() dans la documentation à laquelle je suis lié. Cela devrait fonctionner correctement. –

0

Est-ce que c'est sur votre propre serveur? Ou l'hébergement partagé etc? Il est probable que les rapports d'erreurs soient désactivés au niveau du serveur. (La raison en est généralement la 'sécurité' mais je ne vois pas en quoi il s'agit vraiment d'un problème de sécurité.)

Modifiez la configuration du serveur (php.ini) si vous y avez accès ou contactez votre hébergeur. Ils peuvent être en mesure de fournir un accès aux journaux d'erreurs.

+0

Je pense que le raisonnement est que les erreurs publiques peuvent révéler des détails sur le système de fichiers du serveur et l'infrastructure (le cas échéant) que le site utilise. Cela peut donner à quelqu'un une longueur d'avance dans la recherche d'exploits et de vulnérabilités sur le site ou le serveur. Avec l'hébergement partagé, un seul site vulnérable peut compromettre chaque site sur le serveur. –

+0

Vrai - Je suppose que je le regarde d'un point de vue "puriste" dans le sens où s'il y a un trou de sécurité, il existe toujours si vous révélez des détails sur le système de fichiers ou non. Les attaquants pourraient facilement essayer des exploits pour tous les frameworks/logiciels populaires. – DisgruntledGoat

1

que diriez-vous:

ini_set('display_errors', 1); 

?

+0

+1 error_reporting est une chose, afficher des erreurs à la sortie standard en est une autre. –

Questions connexes