Como é que desligo os avisos de PHP?
Notice: Constant DIR_FS_CATALOG already defined
Já comentei.display_errors
em php.ini
, mas não está a funcionar.
Como faço o PHP para não enviar tais coisas para navegadores?
actualizar
eu coloquei display_errors = Off
lá, mas ainda está relatando tais avisos,
relatando numerosaspilha de chamadas também..
14 answers
Pode marcar display_errors
para 0
ou utilizar o error_reporting()
função.
A partir da documentação do PHP ( error_ reporting):
<?php
// Turn off all error reporting
error_reporting(0);
?>
Outras opções interessantes para essa função:
<?php
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL & ~E_NOTICE);
// For PHP < 5.3 use: E_ALL ^ E_NOTICE
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
// Report all PHP errors
error_reporting(-1);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
?>
Para a linha de comandos php, definir
error_reporting = E_ALL & ~E_NOTICE
Em /etc/php5/cli/php.ini
Comando php
execução então omite os avisos.
<?php
// Turn off all error reporting
error_reporting(0);
// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
// Report all PHP errors
error_reporting(-1);
// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
?>
Usou Esta Linha No Seu Código
error_reporting(E_ALL ^ E_NOTICE);
Acho que está cheio para ti.
Pode definir ini_set('display_errors',0);
no seu programa ou definir quais os erros que deseja mostrar com error_reporting()
.
Não causando os erros:
defined('DIR_FS_CATALOG') || define('DIR_FS_CATALOG', 'whatever');
Se realmente tiver de o fazer, então mude a comunicação de erros usando error_ Reporting() para E_ all^E_NOTICE.
Estás à procura de:
php -d error_reporting="E_ERROR | E_WARNING | E_PARSE"
Para o código PHP:
<?php
error_reporting(E_ALL & ~E_NOTICE);
Para php.ini
Configuração:
error_reporting = E_ALL & ~E_NOTICE
Pode verificar se a constante já está definida usando:
<?php
if (!defined('MYCONST'))
define('MYCONST', 'Weeha!');
?>
Não se esqueça de reiniciar o Apache para aplicar as alterações de configuração.
Lembre-se também que, embora possa definir os erros do 'display_ erros' no tempo de execução, alterá-los aqui não afecta os erros fatais.
Tal como referido por outros, idealmente durante o desenvolvimento, deverá executar com o relatório error_ ao mais alto nível possível e os erros do 'display_ erros' activados. Enquanto irritante quando você começa primeiro, esses erros, avisos, avisos e conselhos de codificação rigorosos tudo somam e permitem que você seja um codificador melhor.
Use o phpinfo () e procure por Configuration File (php.ini) Path
para ver qual é a localização do ficheiro de configuração do php. PHP pode ter vários arquivos de configuração dependendo do ambiente que está executando. Normalmente, para consola é:
/etc/php5/cli / php.ini
E para o php gerido pelo apache é:
/etc/php5/apache2 / php.ini
E, em seguida, definir error_reporting
da maneira que você precisa it:
Http://www.phpknowhow.com/configuration/php-ini-error-settings/ http://www.zootemplate.com/news-updates/how-to-disable-notice-and-warning-in-phpini-file
Como mencionado por alguns e se você é o autor do código, você deve corrigir todos esses erros, avisos, etc. porque ele vai causar mais problemas para você longos termos do que não corrigi-los (especialmente quando você atualizar o seu OS). Para o seu servidor, você deve ter erros exibidos apenas em seus logs, não na tela do cliente.
Assim, para evitar os erros no seu navegador, use a bandeira display_errors
como já encontrou:
display_errors = Off
Agora o verdadeiro problema é quando estás a gerir alguém. outro código. Nesse caso, modificar o código é provável que seja substituído cada vez que você atualizar esse código. Torna-se entediante manter esse código.
No meu caso, estou a executar o PHP com {[[2]} para ter o script wp-cron.php
a correr de vez em quando. Eu estava recebendo erros enviados para meus e-mails, o que se torna tedioso quando você recebe um e-mail a cada 10 minutos! Nesse caso, porém, o sistema Wordpress tem um arquivo de configuração que inclui um WP_DEBUG
e eles chamam a função error_reporting()
de modo a tentar mudar o error_reporting
a variável na linha de comando não funciona. Em vez disso, terá de editar o ficheiro wp-config.php
na pasta de base e certificar-se de que o WP_DEBUG
está definido em false
. Caso contrário, você vai receber todos esses avisos e avisos o tempo todo.