This question has been asked before in a more general way. I want to display error messages on a particular page on my production server, and I do not have access to the
A different method all together would be to register an error handler with: set_error_handler
This way, you can chose what to do with the errors: Mail them to admin, display friendly error message, log to file/db, ...
To enable errors, you must use error_reporting before the point where those are triggered (for example, at the beginning of your PHP script) :
error_reporting(E_ALL);
And to have the error displayed, you should configure display_errors :
ini_set('display_errors', 'On');
(This one should be disabled on a production server, which means you might have to enable it this way, even after having configured error_reporting
)
Of course, all this can be encapsulated in an if
block, to make sure only you can see the error messages -- especially if you are doing this on a live production website ; for instance :
if ($_SESSION['is_admin'])
{
error_reporting(E_ALL);
ini_set('display_errors', 'On');
}
And to get things a bit prettier, you might also want to configure html_errors :
ini_set('html_errors', 'On');
One other thing to note is that you probably not only want to display errors, you want to log them to file/database. Just showing errors to your users in the production environment is not enough; asking them to report the problems will lead to you not knowing what's wrong with your server until it's too late. In your base error and exception handler, make sure to have logic that records the issue (as much debugging info as possible - stack trace, user IP, browser, application version, etc) into persistent storage.
you should really not display them on a production server. Best way is to create some logging system.
Keep in mind to make it reusable!