How to send an error message by e-mail with error_log() function in PHP

1 Answer

0 votes
/*
mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )
*/
   
function ErrorHandler($errno, $errstr, $errfile, $errline)
{
    if (!(error_reporting() & $errno)) {
        return;
    }
 
    switch ($errno) 
    {
        case E_USER_ERROR:
            echo "<b>My ERROR</b> [$errno] $errstr<br />\n";
            echo "  Fatal error on line $errline in file $errfile";
            echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
            echo "Program Exit!<br />\n";
            exit(1);
            break;
 
        case E_USER_WARNING:
            echo "WARNING: [$errno] $errstr<br />\n";
            break;
 
        case E_USER_NOTICE:
            echo "NOTICE: [$errno] $errstr<br />\n";
            break;
 
        default:
            echo "Error: [$errno] $errstr<br />\n";
            break;
    }
    error_log("Error: [$errno] $errstr", 1, "name@email.com", "From: support@site.com");
    
    return true;
}


set_error_handler("ErrorHandler");

$x = 13;
$y = 0;
if ($y == 0)
    trigger_error("y = 0", E_USER_WARNING);
else
    echo $x/$y;

        
/*
run:

WARNING: [512] y = 0
  
*/

 



answered Jan 2, 2016 by avibootz
...