tags:

views:

41

answers:

2

I don't know how php.ini was configured since I don't have access to it. But on top of my php code file I have

error_reporting(E_ALL); ini_set('display_errors', '1');

But still, if there is an error, e.g. missing a ")", the page is blank. It is so painful to debug without error message. Why were the errors not shown?

A: 

The error's weren't shown in this particular case because the error happened before any code was executed, hence before ini_set could change the error reporting configuration.

Check out these pages for some solutions:

Matthew Scharley
Thank you Matthew.
David
+2  A: 

Your error is not an execution error, as it's a Parse Error : it happens before the page even starts being executed.

So, the two intructions that you used have not been executed yet when this error is happening... and, so, they have no effect.


A solution that would help with those Parse Errors would be to just not have them ; a couple of things that could help :

  • Using an IDE that can detect wrong PHP code
    • Eclipse PDT, for instance
    • Or netbeans
  • Use php -l your-php-file.php to check if it's valid
Pascal MARTIN
+1 there is also a crazy workaround to get parse errors displayed as normal ones: http://de.php.net/manual/en/function.set-error-handler.php#91535 but the points you mention are usually the better way to go.
Pekka
@Pekka : oh, didn't think about that ; but using `auto_prepend_file` is a nice/fun/clever idea -- wouldn't do that, but it's clever ^^
Pascal MARTIN
Thank you guys. All answers work.
David