Notice: Constant DIR_FS_CATALOG already defined
Eu já comentado display_errors
no php.ini
, mas não está funcionando.
Como faço para que o PHP não produza essas coisas para os navegadores?
ATUALIZAR
Coloquei display_errors = Off
lá, mas ainda está relatando esses avisos,
Isso é um problema com o PHP 5.3?
Relatando inúmeras pilhas de chamadas também ..
php
error-handling
constants
user198729
fonte
fonte
grep display_errors /path/to/php.ini
para ver se sua linha está sendo substituída em algum lugar no arquivo. Isto é o que estava acontecendo comigo.ini_set('display_errors',0)
no seu arquivo php. Quando as configurações iniciais não estiverem funcionando, verifique sephpinfo()
mostra o valor desejado. Se não você ou mudou o ini-arquivo errado ou algo substitui os valores de php.iniRespostas:
Você pode definir
display_errors
a0
ou usar aerror_reporting()
função.No entanto, os avisos são irritantes (eu posso simpatizar parcialmente ), mas eles servem a um propósito. Você não deve definir uma constante duas vezes, a segunda vez não funcionará e a constante permanecerá inalterada!
fonte
display_errors
não funciona como esperado.phpinfo()
para ver se a configuração realmente se aplica. Perdoe-me, mas eu fortemente dúvida de que você tenha encontrado um bug no PHP 5.3 - Só vou acreditar quando vê-lo :)local value
é On, mas omaster value
está desligado, não sei o que isso significa exatamente ...ini_set
diretivas ouphp_ini_flag
configurações nos.htaccess
arquivos.Na documentação do PHP ( error_reporting ):
Outras opções interessantes para essa função:
fonte
Para a linha de comando php, defina
no
/etc/php5/cli/php.ini
A
php
execução do comando omite os avisos.fonte
source http://php.net/manual/en/function.error-reporting.php
fonte
Utilizou esta linha no seu código
Eu acho que isso está cheio de você.
fonte
Você está procurando:
fonte
/usr/bin/php -d error_reporting="E_ERROR | E_WARNING | E_PARSE" -f /path/to/file.php
para o meu crontabPrefiro não definir o
error_reporting
interior do meu código. Mas, em um caso, um produto herdado, existem tantos avisos que devem ser ocultados.Então, usei o seguinte trecho para definir o valor configurado no servidor,
error_reporting
mas subtrair osE_NOTICE
s.Agora, a configuração do relatório de erros pode ser configurada em
php.ini
ou.htaccess
. Somente avisos sempre serão desativados.fonte
Você pode definir
ini_set('display_errors',0);
em seu script ou definir com quais erros deseja exibirerror_reporting()
.fonte
ini_set
método mencionado aqui, oerror_reporting(0)
método mencionado em outros lugares não teve nenhum efeito.por não causar os erros:
Se você realmente precisar, altere o relatório de erros usando error_reporting () para E_ALL ^ E_NOTICE.
fonte
Para código PHP:
Para
php.ini
configuração:fonte
Eu descobri esse truque recentemente. Whack um @ no início de uma linha que pode produzir um aviso / erro.
Como que por mágica, eles desaparecem.
fonte
Use phpinfo () e pesquise para
Configuration File (php.ini) Path
ver qual caminho do arquivo de configuração para o php é usado. O PHP pode ter vários arquivos de configuração, dependendo do ambiente em que está sendo executado. Normalmente, para console, é:/etc/php5/cli/php.ini
e para o php executado pelo apache é:
/etc/php5/apache2/php.ini
E, em seguida, defina
error_reporting
o que você precisa:http://www.phpknowhow.com/configuration/php-ini-error-settings/ http://www.zootemplate.com/news-updates/how-to-disable-notice-and-warning-in-phpini- Arquivo
fonte
Conforme mencionado por alguns e se você é o autor do código, corrija todos esses erros, avisos etc., pois isso causará mais problemas a longo prazo do que não corrigi-los (principalmente quando você atualizar o sistema operacional). Para o seu servidor, você deve exibir erros apenas nos seus logs, não na tela do cliente.
Portanto, para evitar os erros no seu navegador, use a
display_errors
bandeira como você já encontrou:Agora, o verdadeiro problema é quando você está executando o código de outra pessoa. Nesse caso, a modificação do código provavelmente será substituída sempre que você atualizar esse código. Torna entediante manter esse código.
No meu caso, estou executando o PHP
crontab
para que owp-cron.php
script seja executado de vez em quando. Eu estava recebendo erros nos meus emails, o que se torna tedioso quando você recebe um email a cada 10 minutos! Nesse caso, porém, o sistema Wordpress possui um arquivo de configuração que incluiWP_DEBUG
ae eles chamam aerror_reporting()
função, portanto, tentar alterar aerror_reporting
variável na linha de comando não funcionará. Em vez disso, você deve editar owp-config.php
arquivo na pasta raiz e verificar seWP_DEBUG
está definido comofalse
. Caso contrário, você receberá todos esses avisos e avisos o tempo todo.fonte
Você pode verificar se a constante já está definida usando:
fonte
Eu acredito que comentar os display_errors no php.ini não funcionará porque o padrão é On. Você deve defini-lo como 'Desligado'.
Não se esqueça de reiniciar o Apache para aplicar alterações na configuração.
Observe também que, embora você possa definir display_errors em tempo de execução, alterá-lo aqui não afeta os erros FATAL.
Conforme observado por outras pessoas, idealmente durante o desenvolvimento, você deve executar com error_reporting no nível mais alto possível e display_errors ativado. Embora sejam irritantes quando você começa, esses erros, avisos, avisos e conselhos rigorosos de codificação são adicionados e permitem que você se torne um codificador melhor.
fonte
Constantes duplas definidas
Para corrigir o erro específico aqui, você pode verificar se uma constante já está definida antes de defini-la:
Eu pessoalmente começaria com uma pesquisa na constante da base de código e
DIR_FS_CATALOG
, em seguida, substituiria a dupla definição por esta.Ocultando avisos do PHP em linha, caso a caso
O PHP fornece o
@
operador de controle de erros, que você pode usar para ignorar funções específicas que causam avisos ou avisos.Usando isso, você pode ignorar / desativar avisos e avisos caso a caso em seu código, o que pode ser útil para situações em que um erro ou aviso é intencional, planejado ou simplesmente irritante e impossível de resolver na fonte . Coloque um
@
antes da função ou var que está causando um aviso e ele será ignorado.Aqui está um exemplo:
Mais sobre isso pode ser encontrado nos documentos de operadores de controle de erros do PHP .
fonte