Managing error in PHP and updating report settings

<?Php
error_reporting(0);// no error reporting 
?>
<?php

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

//  E_WARNING is removed
error_reporting(E_ERROR |  E_PARSE); 

// Reporting E_NOTICE can be good too (to report uninitialized)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Report all PHP errors
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
?>
Broadly PHP errors can be classified as
  • parse or syntax errors
  • fatal errors
  • warning errors
  • notice errors
PHP script can be set to display error messages or not by changing display_error setting to On or Off. This setting is available in php.ini file which is a server level setting so not available for shared hosting accounts. But this can be overridden and local settings can be applied to display error or not.

IN our php.ini file there is a setting saying
display_errors = On
With this we can display all types of error and this can be changed to
display_errors=Off
This will not display any error message to visitors.

Local or script level settings

At the script level of any php page we can set the value like this which will change the php.ini setting , here is an example.
<?Php
$one = $two; 
?>
This will give this error message
 Notice: Undefined variable: two in J:\php_files\t\error\test.php on line 13
You may not like this error message to be displayed to your visitors so we can add error_reporting function like this.
<?Php
error_reporting(0);// With this no error reporting will be there
$one = $two; 
?>
No error message will be displayed with the above code.

Development environment

We should display all types of errors in a development environment.
error_reporting(E_ALL);
or
ini_set('display_errors', true);

Production environment

Remember to be cautious when displaying errors on a production server, as it may expose sensitive information to potential attackers. It's generally recommended to enable error reporting during development and testing, and disable it in a production environment. Additionally, it's important to properly handle errors and log them to a secure location instead of displaying them directly to users.

To supress all error message keep these lines at beginning of the page.
ini_set('display_errors', 0);
error_reporting(0);

PHP Error Constants

Value Constant Description
1 E_ERROR (int) Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted.
2 E_WARNING (int) Run-time warnings (non-fatal errors). Execution of the script is not halted.
4 E_PARSE (int) Compile-time parse errors. Parse errors should only be generated by the parser.
8 E_NOTICE (int) Run-time notices. Indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script.
16 E_CORE_ERROR (int) Fatal errors that occur during PHP's initial startup. This is like an E_ERROR, except it is generated by the core of PHP.
32 E_CORE_WARNING (int) Warnings (non-fatal errors) that occur during PHP's initial startup. This is like an E_WARNING, except it is generated by the core of PHP.
64 E_COMPILE_ERROR (int) Fatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine.
128 E_COMPILE_WARNING (int) Compile-time warnings (non-fatal errors). This is like an E_WARNING, except it is generated by the Zend Scripting Engine.
256 E_USER_ERROR (int) User-generated error message. This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error().
512 E_USER_WARNING (int) User-generated warning message. This is like an E_WARNING, except it is generated in PHP code by using the PHP function trigger_error().
1024 E_USER_NOTICE (int) User-generated notice message. This is like an E_NOTICE, except it is generated in PHP code by using the PHP function trigger_error().
2048 E_STRICT (int) Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code.
4096 E_RECOVERABLE_ERROR (int) Catchable fatal error. It indicates that a probably dangerous error occurred, but did not leave the Engine in an unstable state. If the error is not caught by a user defined handle (see also set_error_handler()), the application aborts as it was an E_ERROR.
8192 E_DEPRECATED (int) Run-time notices. Enable this to receive warnings about code that will not work in future versions.
16384 E_USER_DEPRECATED (int) User-generated warning message. This is like an E_DEPRECATED, except it is generated in PHP code by using the PHP function trigger_error().
32767 E_ALL (int) All errors, warnings, and notices.

trigger_error(): Generates a user-level error/warning/notice message
Introduction to PHP
Subscribe to our YouTube Channel here


Subscribe

* indicates required
Subscribe to plus2net

    plus2net.com







    Hire Php Developer

    03-07-2017

    Great tutorial. This tutorial was really helpful to known the error reporting in PHP. Thanks.

    Post your comments , suggestion , error , requirements etc here





    PHP video Tutorials
    We use cookies to improve your browsing experience. . Learn more
    HTML MySQL PHP JavaScript ASP Photoshop Articles FORUM . Contact us
    ©2000-2024 plus2net.com All rights reserved worldwide Privacy Policy Disclaimer