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 php.ini
file. What is the best way to enable all errors and warnings on a particular PHP page on your production server?
I have tried ERROR_REPORTING(E_ALL);
.
Quickly Show All PHP Errors The quickest way to display all php errors and warnings is to add these lines to your PHP code file: ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);
Enable Error Logging in php. If you want to enable PHP error logging in individual files, add this code at the top of the PHP file. ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); Now, you must enable only one statement to parse the log errors in the php.
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');
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!
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, ...
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With