2012-02-11 27 views
18

¿Cuáles son las mejores prácticas para ocultar todos php errors? Como no quiero que ERRORS se muestre al usuario.php ocultar TODOS los errores

He intentado usar el .htacess poniendo el código php_flag display_errors off allí, pero me devuelve un 500 error.

¿Hay algún otro método que oculte todos los errores?

+0

'php_flag' sólo funciona si se está ejecutando PHP como módulo de Apache. Si lo está ejecutando a través de CGI o algo así, Apache no sabe nada sobre esa directiva, por lo que arroja un error. – cHao

Respuesta

0

Utilice las funciones de manejo de errores de PHP para manejar los errores. Cómo lo haces depende de tus necesidades. Este sistema interceptará todos los errores y lo remitirá sin embargo lo quieres o suprimir si usted pide que lo haga

http://php.net/manual/en/book.errorfunc.php

0

La mejor manera es la construcción de la secuencia de comandos de una manera que no puede crear ningún error! Cuando hay algo que puede crear un Aviso o un Error, hay algo mal con su secuencia de comandos y la comprobación de las variables y el entorno.

Si desea ocultar todos modos: error_reporting(0);

+0

Para advertencias, estaría de acuerdo con usted. Para avisos, no tanto. A PHP le gusta avisarle si, por ejemplo, '$ _POST ['cosas']' no está definido. Incluso si espera que no sea la mayor parte del tiempo, y solo está viendo si está allí y es cierto. Y 'isset ($ _ POST ['cosas']) && $ _POST ['cosas']' es demasiado prolijo para la mayoría de los casos. '@ $ _ POST ['cosas']' funciona, pero todo el mundo parece pensar que es malo. – cHao

+1

Sé que las secuencias de comandos de mi sitio funcionan y que no hay errores. Solo estoy haciendo esto para que algo "salte" o alguien intente forzarlo para que se convierta en un error que no lo hará. – Frank

+0

@cHao Incluso para la comprobación de 'isset' puede definir una función o un método;) – TimWolla

1

En el archivo php sólo tiene que introducir este código:

error_reporting(0); 

Esto reportará ningún error al usuario. Si de alguna manera quieres, entonces solo comenta esto.

+0

Esto todavía informa errores tales como Parse error: error de sintaxis – Frank

+4

Sí ... cualquier error que ocurra antes de que el script realmente comience a ejecutarse (errores de parse, errores de sintaxis) no se ocultará por una llamada que ocurre después de que se inicia el script.Si realmente quieres ocultar * todo *, tendrías que establecer 'error_reporting = 0' en php.ini. Pero francamente, si tiene un error de sintaxis, ese código no debería estar en un sitio en vivo de todos modos, nunca podrá funcionar, por lo que no debería importar. – cHao

+0

o simplemente tiene un archivo separado que simplemente desactiva 'error_reporting' y' incluye's su script actual. siempre que el analizador no se queje del archivo, eso desactiva 'error_reporting', usted estará bien, incluso si falla el análisis de los archivos incluidos. – Basti

46

Para ocultar todos los errores:

error_reporting(0); 
ini_set('display_errors', 0); 

para mostrar todos los errores:

error_reporting(E_ALL); 
ini_set('display_errors', 1); 
Cuestiones relacionadas