Erros PHP não sendo exibidos

2

Estou usando o PHP com o Apache no Ubuntu 12.10. Erros não estão sendo exibidos no navegador por algum motivo e não consigo descobrir.

Eu tenho o seguinte no meu arquivo php.ini :

error_reporting = E_ALL & ~E_DEPRECATED
display_errors = On
display_startup_errors = On
log_errors = On

Também tenho certeza de que editei o arquivo ini correto verificando-o com php_ini_loaded_file() . Também posso verificar se os valores estão definidos corretamente, fazendo o seguinte no meu script:

echo ini_get("display_errors"); // Outputs 1
echo ini_get("display_startup_errors"); // Outputs 1
echo ini_get("log_errors"); // Outputs 1
echo ini_get("error_reporting"); // Outputs -1

Eu tentei o que parece ser todas as combinações possíveis dessas configurações (e reiniciar o Apache após cada alteração) e simplesmente não está gerando erros. Eu também não estou usando ini_set em qualquer parte do script. Está sendo definido apenas a partir do arquivo ini.

Alguma idéia de por que os erros não estão sendo exibidos?

Atualização:

Acontece que IS mostra alguns erros, mas nem todos eles.

echo 'hello''; // Shows syntax error
trigger_error("E_USER_WARNING", E_USER_WARNING); // shows error
trigger_error("E_USER_NOTICE", E_USER_NOTICE); // shows error
trigger_error("E_USER_ERROR", E_USER_ERROR); // Doesn't show error
    
por Mike 21.11.2012 / 05:37

1 resposta

1

Acontece que o problema foi uma combinação de PEBKAC e o cabeçalho Content-type . Ao fazer:

header('Content-Type: application/xhtml+xml; charset=UTF-8');

o navegador espera então um documento XML válido. Quando há erros específicos, faz com que o documento não seja exibido no navegador, mesmo que o conteúdo tenha sido enviado. A visualização da origem da página mostra que o erro foi, de fato, enviado com êxito ao navegador junto com todo o outro código. Meu problema era que eu assumi que nada estava ecoando porque tudo que eu via era branco.

    
por 22.11.2012 / 00:05