Many times, working on servers we don’t own, we might find our script just died and said nothing… (one might expect a Wilhelm scream at least).
Well… Easy solution. Just enable display_errors on the server.. what ? you can’t ? ok… Then, use ini_set to enable it.
That should do it. But wait… what if you don’t want all the world know your script is screwing something up ? Or what if your script died just because, and you need to know right away ? (i.e. A constantly running process)
Well, then you can register a shutdown function (Php 4, and 5). What is it ? Exactly what the name says. Whenever the script “shutdowns” , this function will execute.
<?
$res = register_shutdown_function('shutdown');
function shutdown()
{
if ($error = @error_get_last())
if (isset($error['type']) && ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR))
echo "Fatal Error, ending program:\n\nType : {$error['type']}\nMessage : {$error['message']}: \nFile : {$error['file']}:\nLine : {$error['line']}\n");
}
?>
That’s it.
A simple shutdown function, that will check for the last error (assuming the script died because of one) and if that error was fatal, print which error, what message it gave, and in which program it happened.
Then you can forward to your database… mail…. sms…. or just ignore it.
Note : When this function is called, the script already sent headers…
Well….
We are starting this site to promote the sharing of knowledge about programming.
There maybe lots of sites doing something similar, but well.. we intend to do it too, and build a library of stuff we may need in the day-a-day programming (well, for those of us who work programming).
Some of the stuff i’ll post, may seem trivial. But some won’t. If you are looking for something in particular, you might ask in the comments, and i’ll answer (or try to).
I’ll be filling some PHP tips and tricks this week. Hope you like it.