views:

156

answers:

3

I have a development version of PHP on Apache. I moved it to production and got this weird notices in my website. I don't have it on development version. How to enable these notices on my development version of website to fix them?

+4  A: 

Change your php.ini file, the line that says error_reporting, to E_ALL.

I.e:

error_reporting = E_ALL
Björn
If you can't tweak your php.ini, then take a look at my answer below.
Seb
+3  A: 

If you have access to your php.ini, then Björn answer is the way to go.

However, if you don't, or if you want to change a particular script / project error level, do this at the beginning of your code:

ini_set('display_errors', 1);

// Enable error reporting for NOTICES
error_reporting(E_NOTICE);

You can see which levels are available for error_reporting here: http://us2.php.net/manual/en/function.error-reporting.php.

It's always a good practice not to show any errors on production environments, but logging any weird behaviors and sending by mail to the administrator. NOTICES should only be enabled on development environments.

Seb
Good point. But on a development server you should show all notices, warnings and errors - so I would recommend using error_reporting(E_ALL); (equivalent to error_reporting(6143);).
Björn
Absolutely. E_ALL for development is the best option.
Seb
I would say (E_ALL | E_STRICT) for development work
Jacco
A: 

Seb is right, though you really should use constant for error_reporting().

error_reporting(E_NOTICE);

You can use bitwise operations to pick exactly the messages you want to display. For example:

// notices and warnings
error_reporting(E_NOTICE | E_WARNING);

// everything except errors
error_reporting(E_ALL ^ E_ERROR);
Emil H