ERROR HANDLING IN PHP

advertisement
ERROR HANDLING IN
PHP
TABLE OF CONTENTS
• Need of error handling?
• Basic error handling
• Custom error handler
• Error report levels
• Set error handler
• Trigger an error
• Error message by mail
• Conclusion
NEED OF ERROR HANDLING
• A Good practice.
• Eliminate Security risks
• Professional work vs unprofessional work.
• Error checking code improves efficiency.
When creating web applications, error handling is an important part
BASIC ERROR HANDLING
• Simple "die()" statements
• Custom errors and error
triggers
• Error reporting
Basic Error Handling: Using the die() function
A simple text file
<?php
$file=fopen("welcome.txt","r");
?>
If file does not exist
<?php
if(!file_exists("welcome.txt")) {
die("File not found!");
} else {
$file=fopen("welcome.txt","r");
}
?>
Warning: fopen(welcome.txt) [function.fopen]: failed to open
stream:
No such file or directory in C:\webfolder\test.php on line 2
File not found!
• Die() function will execute
• After the error, the script will stop
• Efficiency will be increased
• Stopping the script is not always the right way to go
• alternative PHP functions for handling errors.
Creating a Custom Error Handler
It is quiet simple
Create a special function that can be called when an error occurs in PHP
Error_message
Error_level
Error_file
Error_line
Function with minimum two parameters
It can accept up to five parameters
Syntax
error_function(error_level,error_message,
error_file,error_line,error_context)
Error_context
Error report levels
VALUE
CONSTANT
2
E_WARNING
8
E_NOTICE
256
E_USER_ERROR
512
E_USER_WARNING
1024
E_USER_NOTICE
4096
E_RECOVERABLE_ERROR
8191
E_ALL
SET ERROR HANDLER
function customError($errno, $errstr) {
echo "<b>Error:</b> [$errno] $errstr<br>";
echo "Ending Script";
die();
}
• Now we need to decide when it should be triggered.
• Set error handler.
A simple error handling function
`
• The default error handler for PHP is the built in error handler.
• It is also possible to change the error handler
• the script can handle different errors in different ways
• Only one parameter is needed for all errors
set_error_handler("customError");
Error handler
EXAMPLE
<?php
//error handler function
function customError($errno, $errstr) {
echo "<b>Error:</b> [$errno] $errstr";
}
//set error handler
set_error_handler("customError");
//trigger error
echo($test);
?>
OUTPUT
Error: [8] Undefined
variable: test
Trigger An Error
• It is useful when users input data.
 Error can be triggered anywhere you wish in a
script.
• For every illegal input, error is triggered.
 By adding a second parameter.
• Function used
• Example:
• Output:
trigger_error()
<?php
$test=2;
if ($test>=1) {
trigger_error("Value must be
1 or below");
}
?>
Notice: Value must be 1 or
below
in C:\webfolder\test.php on
line 6
 Possible error types:
 E_USER_ERROR
 E_USER_WARNING
 E_USER_NOTICE
Send Error Message by E- Mail
<?php
//error handler function
function customError($errno, $errstr) {
echo "<b>Error:</b> [$errno] $errstr<br>";
echo "Webmaster has been notified";
error_log("Error: [$errno] $errstr",1,
"someone@example.com","From: webmaster@example.com");
}
//set error handler
set_error_handler("customError",E_USER_WARNING);
//trigger error
$test=2;
if ($test>=1) {
trigger_error("Value must be 1 or below",E_USER_WARNING);
}
?>
OUTPUT
Error: [512]
Value must be 1
or below
THANKYOU
Download