Scripts
Database error reporter
Nou.. Het scriptje bevat een voorbeeld.. Werkt heel simpel, weergeeft duidelijk en overzichtelijk wat je fout doet + de query, tijd, pagina en ip adres. Ook stuurt hij een eenmalige e-mail per bezoeker. Dus als er 100 bezoekers tegelijk komen krijg je wel 100 mailtje :) Zie ook het voorbeeld: www.phphulp.nl/voorbeeld/mysql_error.php Zo ziet de database error report er dus uit..
database-error-reporter
<?
session_start();
//---- create function
function dberror($sql, $line)
{
//---- some needed mail vars
$email_to = "[email protected]";
$email_subject = "MySQL db error @ " . date('d.m.Y H:i');
$email_from = "From: Automatisch <[email protected]>";
$email_headers = "From: DB error reporter <[email protected]>\r\n";
$email_headers .= "MIME-Version: 1.0\r\n";
$email_headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
//---- generate db error report
$error = "<pre style=\"position: absolute; top: 20px; left: 20px; background-color: #FCFCFC; border: 1px solid #CCCCCC; padding: 8px; width: 100%; z-index: 5;\"><code>";
$error .= "<div style=\"float: left; width: 90px;\" valign=\"top\">";
$error .= "<b>Query:</b><br />";
$error .= "<b>Error:</b><br />";
$error .= "<b>Line:</b><br />";
$error .= "<b>Page:</b><br />";
$error .= "<b>Date/time:</b><br />";
$error .= "<b>IP addr:</b><br />";
$error .= "</div><div valign=\"top\">";
$error .= $sql . "<br />";
$error .= mysql_error() . "<br />";
$error .= $line . "<br />";
$error .= $_SERVER['PHP_SELF'] . "<br />";
$error .= date('d.m.Y H:i') . "<br />";
$error .= $_SERVER['REMOTE_ADDR'] . "<br />";
$error .= "</div></code></pre>";
//---- check for first try
if (!$_SESSION['dberror_mail'])
{
mail($email_to, $email_subject, $error, $email_headers);
$_SESSION['dberror_mail'] = 1;
}
//---- return the database error
return $error;
}
//---- execute any kind of query to test the error report
//---- in this case I've forgot to make a database connection (Oops!)
$sql = "SELECT * FROM iets_niet_bestaans";
$res = @mysql_query($sql) or die(dberror($sql, __LINE__));
?>
Reacties
0