Notice: Constant DIR_FS_CATALOG already defined
Ya he comentado display_errors
en php.ini
, pero no está funcionando.
¿Cómo hago para que PHP no envíe tales cosas a los navegadores?
ACTUALIZAR
Puse display_errors = Off
allí, pero todavía está informando tales avisos,
¿Es este un problema con PHP 5.3?
Reportando numerosas Pila de Llamadas también ...
php
error-handling
constants
usuario198729
fuente
fuente
grep display_errors /path/to/php.ini
para ver si su línea se anula en algún lugar del archivo. Esto es lo que me estaba pasando.ini_set('display_errors',0)
en su archivo php. Cuando su configuración inicial no funciona, debe verificar siphpinfo()
muestra el valor deseado. Si no, o cambió el archivo ini incorrecto o algo sobrescribe sus valores de php.iniRespuestas:
Se puede establecer
display_errors
que0
o utilizar laerror_reporting()
función.Sin embargo, los avisos son molestos (puedo simpatizar en parte ) pero tienen un propósito. ¡No deberías definir una constante dos veces, la segunda vez no funcionará y la constante permanecerá sin cambios!
fuente
display_errors
no funciona como se esperaba.phpinfo()
para ver si la configuración se aplica realmente. Perdóname, pero dudo mucho que hayas encontrado un error en PHP 5.3 - Solo lo creeré cuando lo vea :)local value
está encendido, peromaster value
está apagado, no sé qué significa eso exactamente ...ini_set
directivas ophp_ini_flag
configuraciones en.htaccess
archivos.De la documentación de PHP ( error_reporting ):
Otras opciones interesantes para esa función:
fuente
Para la línea de comando php, establezca
en
/etc/php5/cli/php.ini
La
php
ejecución del comando omite los avisos.fuente
fuente http://php.net/manual/en/function.error-reporting.php
fuente
Usó esta línea en su código
Creo que es helf lleno para ti.
fuente
Estás buscando:
fuente
/usr/bin/php -d error_reporting="E_ERROR | E_WARNING | E_PARSE" -f /path/to/file.php
para mi crontabPrefiero no configurar el
error_reporting
interior de mi código. Pero en un caso, un producto heredado, hay tantos avisos que deben ocultarse.Así que utilicé el siguiente fragmento para establecer el valor configurado del lado del servidor
error_reporting
pero restar elE_NOTICE
s.Ahora la configuración de informe de errores se puede configurar en
php.ini
o.htaccess
. Solo los avisos siempre estarán deshabilitados.fuente
Puede configurar
ini_set('display_errors',0);
su secuencia de comandos o definir con qué errores desea mostrarerror_reporting()
.fuente
ini_set
método mencionado aquí, elerror_reporting(0)
método mencionado en otra parte no tuvo ningún efecto.al no causar los errores:
Si realmente tiene que hacerlo, cambie el informe de errores usando error_reporting () a E_ALL ^ E_NOTICE.
fuente
Para el código PHP:
Para
php.ini
config:fuente
Encontré este truco recientemente. Golpee una @ al comienzo de una línea que puede producir una advertencia / error.
Como por arte de magia, desaparecen.
fuente
Use phpinfo () y busque para
Configuration File (php.ini) Path
ver qué ruta de archivo de configuración se usa para php. PHP puede tener múltiples archivos de configuración dependiendo del entorno que esté ejecutando. Por lo general, para la consola es:/etc/php5/cli/php.ini
y para php ejecutado por apache es:
/etc/php5/apache2/php.ini
Y luego establece
error_reporting
la forma en que lo necesitas:http://www.phpknowhow.com/configuration/php-ini-error-settings/ http://www.zootemplate.com/news-updates/how-to-disable-notice-and-warning-in-phpini- expediente
fuente
Como mencionan algunos y si usted es el autor del código, debe corregir todos esos errores, avisos, etc., ya que le causará más problemas a largo plazo que no solucionarlos (especialmente cuando actualiza su sistema operativo). Para su servidor, debe tener errores que se muestran solo en sus registros, no en la pantalla del cliente.
Entonces, para evitar los errores en su navegador, use la
display_errors
bandera como ya encontró:Ahora el verdadero problema es cuando estás ejecutando el código de otra persona. En ese caso, es probable que la modificación del código se sobrescriba cada vez que actualice ese código. Resulta tedioso mantener ese código.
En mi caso, estoy ejecutando PHP
crontab
para que elwp-cron.php
script se ejecute de vez en cuando. Recibía errores en mis correos electrónicos, lo que se vuelve tedioso cuando recibes un correo electrónico cada 10 minutos. Sin embargo, en ese caso, el sistema Wordpress tiene un archivo de configuración que incluyeWP_DEBUG
ay llaman a laerror_reporting()
función, por lo que intentar cambiar laerror_reporting
variable en la línea de comando no funcionará. En su lugar, debe editar elwp-config.php
archivo en la carpeta raíz y asegurarse de queWP_DEBUG
esté configurado enfalse
. De lo contrario, recibirá todas esas advertencias y avisos todo el tiempo.fuente
Puede verificar si la constante ya está definida usando:
fuente
Creo que comentar display_errors en php.ini no funcionará porque el valor predeterminado es On. Debe configurarlo en 'Off' en su lugar.
No olvide reiniciar Apache para aplicar los cambios de configuración.
También tenga en cuenta que si bien puede configurar display_errors en tiempo de ejecución, cambiarlo aquí no afecta a los errores FATAL.
Como han señalado otros, lo ideal es que durante el desarrollo se ejecute con error_reporting al nivel más alto posible y display_errors habilitado. Si bien es molesto cuando comienza, estos errores, advertencias, avisos y consejos estrictos de codificación se suman y le permiten convertirse en un mejor codificador.
fuente
Constantes dobles definidas
Para corregir el error específico aquí, puede verificar si una constante ya está definida antes de definirla:
Yo personalmente comenzaría con una búsqueda en la base de código para la constante
DIR_FS_CATALOG
, luego reemplazaría la doble definición con esto.Ocultar avisos PHP en línea, caso por caso
PHP proporciona el
@
operador de control de errores, que puede usar para ignorar funciones específicas que causan avisos o advertencias.Al usar esto, puede ignorar / deshabilitar avisos y advertencias caso por caso en su código, lo que puede ser útil para situaciones en las que un error o aviso es intencional, planificado o simplemente molesto y no es posible resolverlo en la fuente . Coloque un
@
antes de la función o var que está causando un aviso y se ignorará.Aquí hay un ejemplo:
Puede encontrar más información sobre esto en los documentos de Operadores de control de errores de PHP .
fuente