Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fábio BN

Por que o PHP não exibe alguns erros?

Recommended Posts

Oi Pessoal.

Uso o PHP Version 5.4.45, e gostaria de saber por que ele não exibe alguns erros de código, em alguns erros aparece apenas:

(  www.meu_site.com.br não consegue atender a esta solicitação no momento.

HTTP ERROR 500

Se eu esquecer de colocar alguma vírgula no final de um código, ou algum comando estiver errado, aparece apenas esse erro acima.

Em alguns casos aparece o erro e aponta a linha, mas na maioria não.
Alguém sabe o motivo?

Obrigado!

Fábio!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O PHP retorna erros de sintaxe e os debugs, o erro que você mostrou (500) é um erro a nível de servidor, nesse caso a linguagem nem chega a ser acessada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu antes programava em ASP e lá aparece todos os erros independente qual seja, estou passando um site de ASP para PHP e me deparei com essa dificuldade.
Então quer dizer que nesses casos terei que me virar para identificar qual linha está errada?

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então quer dizer que nesses casos terei que me virar para identificar qual linha está errada?

Sempre comece ativando a exibição de todos os erros conforme mostrado no tópico fixo, isso vai garantir que se existir um erro e ele for a nível de linguagem, o mesmo seja exibido, se não for exibido, ai já extrapola o escopo da linguagem, nesse caso você terá que consultar os logs de erro do próprio servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No início do seu código, coloque as seguintes linhas:

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

A primeira linha é para exibir os erros, e a segunda define quais erros exibir (no caso, todos).

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi.

O meu código está assim:

1. <?php
2. session_start();
3. 
4. ini_set('display_errors', true);
5. error_reporting(E_ALL|E_STRICT);

Vou testar seu exemplo.

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi.

Testei aqui e não funcionou.

Exemplo:

$ sequencia = 1;
// ou
$sequencia = 1

Fiz um teste tentando criar uma variável de forma incorreta, e não relatou a linha de erro, dá erro 500 e não mostra a falha.

É normal isso?

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continuação do assunto:

Se a exibição de erros estiver setada em Zero no PHP.ini não em como exibir elas no código né!
Pois tentei tudo que é comando e não exibe.

Eu pedi pro pessoal do servidor, alterar no PHP.INI pois não tenho acesso

Alterar no PHP.INI de:
error_reporting = 0

Para:
error_reporting = E_ALL | E_STRICT

Se funcionar, retorno com um positivo.

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Outro possivel erro para o 500 pode alguma configuração errada de servidor.

exemplo syntax incorreta no php.ini.

Utilizar algum modulo que não existe (mod_rewrite + .htaccess)

ou erro de syntax em algum desses modulos. (.htaccess novamente).

Uma boa é 'deletar' o arquivo .htaccess

Caso voltar a exibir, tentar entender onde errou na sua syntax, ou se o mesmo estão habilitado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Solução este caso.

O pessoal do servidor criou um arquivo php.ini na raiz do meu site e apontou o ( Loaded Configuration File ) para este arquivo. Assim dentro dele eu consigo inserir comandos para setar determinadas configurações, tais como:

display_errors = On

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/Brasilia

extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so

Abraços.

Fábio

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.