Eu verifiquei meu arquivo ini do PHP ( php.ini
) e display_errors
está definido e também o relatório de erros E_ALL
. Eu reiniciei meu servidor Apache.
Eu até coloquei essas linhas na parte superior do meu script, e ele nem captura erros simples de análise. Por exemplo, declaro variáveis com a "$"
e não fecho instruções ";"
. Mas todos os meus scripts mostram uma página em branco sobre esses erros, mas eu quero realmente ver os erros na saída do meu navegador.
error_reporting(E_ALL);
ini_set('display_errors', 1);
O que resta fazer?
$_REQUEST
parâmetro), essas duas linhas funcionam na maioria das vezes.Respostas:
Isso sempre funciona para mim:
No entanto, isso não faz com que o PHP mostre erros de análise - a única maneira de mostrar esses erros é modificar o seu php.ini com esta linha:
(se você não tiver acesso
php.ini
, inserir essa linha.htaccess
também pode funcionar):fonte
php_flag display_errors 1
para .htaccessE_ALL
não é suficiente para exibir todos os erros no PHP 5.3. "E_STRICT
tornou-se parte doE_ALL
5.4.0" - Manual do PHP Você precisaE_ALL | E_STRICT
ou-1
nessa versão.Você não pode capturar erros de análise ao ativar a saída de erro em tempo de execução, porque ele analisa o arquivo antes de executar qualquer coisa (e, como encontra um erro durante isso, não executa nada). Você precisará alterar a configuração real do servidor para que display_errors esteja ativado e o nível apropriado de error_reporting seja usado. Se você não tiver acesso ao php.ini, poderá usar .htaccess ou similar, dependendo do servidor.
Esta pergunta pode fornecer informações adicionais.
fonte
Dentro do seu php.ini :
Em seguida, reinicie o servidor da web.
fonte
sudo service apache2 restart
sudo apachectl -k restart
.Loaded Configuration File
Para exibir todos os erros, você precisa:
1. Tenha estas linhas no script PHP que você está chamando no navegador (normalmente
index.php
):2. (a) Verifique se este script não possui erros de sintaxe
-ou-
2. (b) Coloque
display_errors = On
em seuphp.ini
Caso contrário, ele não pode nem executar essas duas linhas!
Você pode verificar se há erros de sintaxe no seu script executando (na linha de comando):
Se você incluir o script de outro script PHP em seguida, ele irá exibir erros de sintaxe no incluiu script. Por exemplo:
index.php
my_script.php
fonte
Alguns provedores de hospedagem permitem que você altere os parâmetros PHP no
.htaccess
arquivo.Você pode adicionar a seguinte linha:
Eu tive o mesmo problema que o seu e esta solução o corrigiu.
fonte
Você pode encontrar todas as configurações de "relatório de erros" ou "erros de exibição" não parecem funcionar no PHP 7. Isso ocorre porque o tratamento de erros mudou. Tente isso:
Ou, para capturar exceções e erros de uma só vez (isso não é compatível com o PHP 5):
fonte
try{} catch() {}
código em todos os lugares em seu código PHP já definido, eu não quero nem pensar a bagunça que vai ser ..$bt = debug_backtrace(); print_r($bt);
.Error
. Se você reescrever todas as solicitações (exceto, talvez, JavaScript, CSS, Imagens, etc.) no arquivo index.php, faça o bloco try catch lá, fica mais fácil. Sim, qualquer sistema que não possua um único ponto de entrada seria uma grande dor de cabeça para atualizar.Isso funcionará:
fonte
Usar:
Essa é a melhor maneira de escrevê-lo, mas um erro de sintaxe gera saída em branco; portanto, use o console para verificar se há erros de sintaxe. A melhor maneira de depurar o código PHP é usar o console; execute o seguinte:
fonte
Defina isso no seu arquivo index.php :
fonte
Crie um arquivo chamado php.ini na pasta em que seu arquivo PHP reside.
Dentro do php.ini, adicione o seguinte código (estou dando um erro simples ao mostrar o código):
fonte
Aqui está um script PHP:
Para uma explicação mais detalhada dos erros do PHP, visite PHP Error - error_reporting () .
fonte
Se, apesar de seguir todas as respostas acima (ou não conseguir editar o arquivo php.ini), você ainda não conseguir receber uma mensagem de erro, tente criar um novo arquivo PHP que permita o relatório de erros e inclua o arquivo com problema. por exemplo:
Apesar de ter tudo definido corretamente no meu
php.ini
arquivo, essa foi a única maneira de detectar um erro no namespace. Meu cenário exato foi:fonte
Normalmente, eu usaria o seguinte código nos meus projetos PHP simples.
fonte
Ao usar o PHP como um módulo Apache, podemos alterar as definições de configuração usando diretivas nos arquivos de configuração do Apache (por exemplo, httpd.conf) e nos arquivos .htaccess. Você precisará dos privilégios “AllowOverride Options” ou “AllowOverride All” para fazer isso.
Verifique isto
http://funbird.co.uk/blog/tech-articals/linux-tech-articals/enabling-error-display-php-via-htaccess
fonte
Se você, de alguma forma, se encontra em uma situação em que não pode modificar a configuração
php.ini
ou.htaccess
não tem sorte em exibir erros quando seus scripts PHP contêm erros de análise. Você precisaria então resolver os arquivos na linha de comando da seguinte maneira:Se o seu host estiver tão bloqueado que não permita alterar o valor via
php.ini
ou.htaccess
, também poderá impedir a alteração do valor viaini_set
. Você pode verificar isso com o seguinte script PHP:fonte
find . -name '*.php' -type f -exec php -l {} \; | grep -v 'No syntax errors detected'
é mais simplesComo agora estamos executando o PHP 7, as respostas fornecidas aqui não estão mais corretas. O único que ainda está bom é o de Frank Forte , enquanto ele fala sobre o PHP 7.
Por outro lado, em vez de tentar detectar erros com um try / catch, você pode usar um truque: use include.
Aqui estão três partes do código:
Arquivo: tst1.php
Executar isso no PHP 7 não mostrará nada.
Agora, tente o seguinte:
Arquivo: tst2.php
Arquivo: tst3.php
Agora execute tst2 que define o relatório de erros e inclua tst3. Você verá:
fonte
Você pode fazer algo como abaixo:
Defina os parâmetros abaixo no seu arquivo de índice principal:
Então, com base nos seus requisitos, você pode escolher qual deseja mostrar:
Para todos os erros, avisos e avisos:
Para todos os erros:
Para todos os avisos:
Para todos os avisos:
Para mais informações, clique aqui .
fonte
index.html
?Você pode adicionar seu próprio manipulador de erros personalizado, que pode fornecer informações extras sobre depuração. Além disso, você pode configurá-lo para enviar as informações por e-mail.
fonte
Este código na parte superior deve funcionar:
No entanto, tente editar o código no telefone no arquivo:
fonte
A melhor solução / fácil / rápida que você pode usar se for uma depuração rápida é cercar seu código com exceções de captura. É o que estou fazendo quando quero verificar algo rapidamente na produção.
fonte
catch (Throwable $e)
é melhor ... Ou outra por baixo bloco catchcatch(Error $e)
Apenas escreva:
fonte
Foi o que eu aprendi. No arquivo PHP.INI,
fonte
Enquanto o site estiver ativo, o
php.ini
arquivo deverá ter display_errors desativado por motivos de segurança. No entanto, para o ambiente de desenvolvimento, display_errors pode ser ativado para solução de problemas.fonte
Você pode fazer isso alterando o arquivo php.ini e adicione o seguinte
OU você também pode usar o código a seguir, pois isso sempre funciona para mim
fonte
Se você tiver o Xdebug instalado, poderá substituir todas as configurações, definindo:
fonte
Você pode querer usar este código:
fonte
Relatar todos os erros, exceto E_NOTICE
Exibir todos os erros do PHP
Desativar todos os relatórios de erros
fonte
Na CLI do Unix , é muito prático redirecionar apenas erros para um arquivo :
Em seguida, de outro shell, para alterações ao vivo:
ou simplesmente
fonte
./script
é um script da CLI php (hashbang#!/usr/bin/php
). Você pode redirecionar os erros de php em um arquivo dessa maneira. Esta é a tubulação unix. Este não é php como CGI.Se estiver na linha de comando, você pode executar
php
com-ddisplay_errors=1
para substituir a configuração emphp.ini
:fonte
Diferente do
php.ini
eini_set()
funções em um script PHP, você pode fazer a mesma coisa com.htaccess
ehttpd.conf
directivas mostrado abaixo.Alguns provedores de hospedagem permitem definir configurações do PHP através de
.htaccess
ehttpd.conf
.Ocultar erros de PHP
encontrou esta resposta pesquisando um pouco
fonte